Refreshing metadata of “language neutral” objects in GS upgrade step

In a GS upgrade step where I am reindexing language neutral objects, the metadata only updates for the object in a single language.

I am using object.reindexObject()
as described in https://docs.plone.org/4/en/develop/plone/searching_and_indexing/indexing.html#when-indexing-happens-and-how-to-reindex-manually to reindex my objects

and at the end of the upgrade step, I reindex the whole catalog index using
catalog.manage_reindexIndex(ids=['my_field']) (see my previous post)

So now, in the portal catalog viewed through the ZMI, this seems to update my FieldIndex for all language versions of the object.

However, when accessing the brain of various language versions, I still see ghost values...

color_type_lookup = getattr(color_brain, 'color_type_lookup', [])
log.info('%s color_type_lookup %s: %s' % (get_linenumber(), 
                                          color_brain.getPath(), 
                                          color_type_lookup))

returns different results depending on the language. e.g.

2019-11-02 15:46:37 INFO mdb_theme.rainbow_utils 247 color_type_lookup 
    /mdb/sv/media/farbpaspele/terrassen-oel/terrassenoel_bangkirai_hell.png: 
    [{'colorlist_pl_benz_professional': u'7055'}, 
     {'colorlist_pl_balzer_nassauer': u'mittel'},
     {'colorlist_pl_leitermann': u'naturget\xf6nt'}, 
     {'colorlist_pl_prosol': u'mittel'}]
2019-11-02 15:46:41 INFO mdb_theme.rainbow_utils 247 color_type_lookup 
    /mdb/de/media/farbpaspele/terrassen-oel/terrassenoel_bangkirai_hell.png: 
    [{'d8574eae85d149b8a4d6fb8d80c4b243': u'7055'},
     {'d33c5868cd0c494e87fae9aa5360b667': u'mittel'},
     {'b2d121e7bb144bcf96a379beab89b42a': u'naturget\xf6nt'},
     {'c28e30683d934eb0bde4ac96d354b608': u'mittel'}] 

I have also tried using portal_catalog.catalog_object(obj, idxs=['my_field'])
as discussed in Best practices on reindexing the catalog and https://stackoverflow.com/questions/43976058/refresh-non-index-metadata-in-a-plone-zcatalog - this made no difference.

If I re-save the object in the Plone frontend, the metadata is updated as expected.

Smells like a bug to me...

I have updated my upgrade step as follows to update each language version. Works, but seems rather hardcore...

for brain in colortone_brains:
    translation_group = brain.TranslationGroup
    img_obj = brain.getObject()
    """ fixup my object
    """
    sibling_brains = catalog.searchResults( portal_type      = 'Image'
                                          , TranslationGroup = translation_group
                                          , )
    for sibling_brain in sibling_brains:
        obj_to_reindex = sibling_brain.getObject()
        catalog.catalog_object(obj_to_reindex, idxs=['color_type_lookup'])
        obj_to_reindex.reindexObject()

# almost done
catalog.manage_reindexIndex(ids=['color_type_lookup'])

Plone Foundation Code of Conduct