I debugged create_or_update_organism.py for a while and so far I found the following.
Line 134 sets org = {'annotationCount': 0, 'blatdb': None, 'commonName': 'E. coli K12 (gx*****)', 'currentOrganism': False, 'directory': '/data/dnb01/apollo/*********', 'genomeFasta': 'seq/genome.fasta', 'genomeFastaIndex': 'seq/genome.fasta.fai', 'genus': 'Escherichia', 'id': *******, 'metadata': '{"creator":"**"}', 'nonDefaultTranslationTable': None, 'obsolete': False, 'publicMode': False, 'sequences': 2, 'species': 'coli', 'valid': True}.
Execution continues until line 148.
In accessible_organisms, both permission_map (a dict) and user.organismPermissions are empty. Thus, an empty list is returned, triggering the exception on line 150.
The user passed to accessible_organisms is created here. The content of wa.users._assert_or_create_user(args.email) is
{'firstName': 'Brian ',
'lastName': 'Burnes',
'inactive': False,
'role': 'USER',
'availableGroups': [
{'name': '****'},
...,
{'name': '****'},
{'name': '****'},
{'name': '****'}],
'userCount': 1,
'searchName': None,
'groups': [],
'userId': *******,
'organismPermissions': [],
'username': 'bburnes01@gmail.com'}
The value for the key organismPermissions is an empty list. Digging deeper, that information comes from the loadUsers endpoint.
Feel free to continue debugging if you find some time for it.