Update to 31.2.0 breaks row selection on editable rows

I have a tool that uses dash ag grid for a large table where several of the columns are editable.

This has worked well for a long time.

Iā€™m testing with 31.3.0 and now see an odd behavior (I also reverted to 31.2.0 and see the same - our last prod version was on 2.3.0):

If I have a table with editable columns, the selectedRows callback behaves inconsistency.

Basically, once I load the page, it either works, or it doesnā€™t.

Example:


@dash.callback(
    [ 
        (some outputs)
    ],
    [
        Input('td-table-topology-projects-element', 'selectedRows'),
        (other inputs)
    ],
    ...
)
def myFunction(selectedRows)

    print('here')

I can put a breakpoint on the print statement.

I click a row, I hit the breakpoint.
I click another row, I hit the breakpoint.

I refresh the table.

I click a row, nothing happens.

Either it always ā€œworksā€ after a table load, or it never does, which suggests a timing issue.

The way Iā€™m setting the ā€œeditable-nessā€ is in the ā€˜typeā€™ property on the column:

ā€œtypeā€:
{ā€œeditableā€: True, ā€œfilterā€: ā€œagMultiColumnFilterā€},

Is this is a known issue?

Any suggestions here would be great. Thanks.

(FWIW, I cannot reproduce this behavior with 31.0.1 - so it appears to have been introduced in 31.2.0)

Hi @zack_nc

can you please include a minimal example?

I figured this out - it actually has to do with the allow_duplicate property on callback outputs.

This behavior appears to have changed and I had to adjust for it.