-
Notifications
You must be signed in to change notification settings - Fork 37
Description
Version
main, GLEIF-IT/v0.3.0
Environment
Linux, 3.13, bare metal
Expected behavior
When sending the same multisig inception event twice to the /identifiers endpoint but with a different alias either both aliases should be added, the second one should overwrite the first, or the second one should throw an error but the endpoint should still be useable.
Actual behavior
The /identifiers endpoint permanently returns 500 - Internal Server error to all requests.
E assert 500 == 200
E + where 500 = Result<500 Internal Server Error application/json b'{"title": "500 Internal Server Error"}'>.status_code
tests/app/test_aiding.py:2749: AssertionError
--------------------------------------------------------------- Captured stderr call ---------------------------------------------------------------
2026-02-03 15:36:18 [FALCON] [ERROR] POST /identifiers/aid1/events => Traceback (most recent call last):
File "falcon/app.py", line 440, in falcon.app.App.__call__
File "/home/daidoji/ssi/keria/src/keria/app/aiding.py", line 1039, in on_post
op = self.rotate(agent, name, body)
File "/home/daidoji/ssi/keria/src/keria/app/aiding.py", line 1103, in rotate
keeper.rotate(pre=serder.pre, **salt)
~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: SaltyManager.rotate() missing 2 required positional arguments: 'kidx' and 'transferable'
2026-02-03 15:36:18 [FALCON] [ERROR] GET /identifiers => Traceback (most recent call last):
File "falcon/app.py", line 440, in falcon.app.App.__call__
File "/home/daidoji/ssi/keria/src/keria/app/aiding.py", line 595, in on_get
hab = agent.hby.habs[pre]
~~~~~~~~~~~~~~^^^^^
KeyError: 'EGOSjnzaVz4nZ55wk3-SV78WgdaTJZddhom9ZLeNFEd3'
============================================================= short test summary info ==============================================================
FAILED tests/app/test_aiding.py::test_renaming_after_incepting_hoses_wallet - assert 500 == 200
Steps to reproduce
I have modified one of the tests in keria that demonstrates the behavior. https://github.com/provenant-dev/keria/blob/bug/renaming-after-incepting-gives-persistent-500/tests/app/test_aiding.py#L2741 this test on this branch fails with the 500 on the second (and all subsequent) GET requests. Unclear how to recover a wallet where this has occurred.
HAR file (mangled so could upload to github) from a test in provenant-dev env to see actual workflow where we first discovered this.