You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
UPDATE 2026-07-08 — re-scoped against 0.7.x. The original failure mode below is gone: the SDK now raises typed errors (FunctionNotFoundError et al., src/resonate/error.py), and an unregistered function on an incoming task is logged and the task released — the worker no longer stops. What remains open is the original ask: no error class carries an error code or docs link. Proposal per @dfarr below and resonatehq/design#1: append http://rn8.io/e/{code} to ResonateError.__str__ with the code as the switch. Note the docs page moved to https://docs.resonatehq.io/debug/errors, and rn8.io/e/* forwarding is not yet live (still 404), so the holding condition from 2025 still applies.
I recently hit a "Function not registered" error. Example:
📦 Version: 0.6.3
🧵 Thread: message-source
❌ Exception: ValueError('function game not found in registry')
📄 Stacktrace:
─────────────────────────────────────────────────────────────────────
Traceback (most recent call last):
File "/Users/flossypurse/code/darkforest/service/.venv/lib/python3.13/site-packages/resonate/utils.py", line 22, in wrapper
return func(*args, **kwargs)
File "/Users/flossypurse/code/darkforest/service/.venv/lib/python3.13/site-packages/resonate/bridge.py", line 307, in _process_msgs
self._cq.put_nowait(_invoke(root))
~~~~~~~^^^^^^
File "/Users/flossypurse/code/darkforest/service/.venv/lib/python3.13/site-packages/resonate/bridge.py", line 282, in _invoke
_, func, version = self._registry.get(data["func"], data["version"])
~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/flossypurse/code/darkforest/service/.venv/lib/python3.13/site-packages/resonate/registry.py", line 42, in get
raise ValueError(msg)
ValueError: functiongame not found in registry
Note
UPDATE 2026-07-08 — re-scoped against 0.7.x. The original failure mode below is gone: the SDK now raises typed errors (
FunctionNotFoundErroret al.,src/resonate/error.py), and an unregistered function on an incoming task is logged and the task released — the worker no longer stops. What remains open is the original ask: no error class carries an error code or docs link. Proposal per @dfarr below and resonatehq/design#1: appendhttp://rn8.io/e/{code}toResonateError.__str__with the code as the switch. Note the docs page moved to https://docs.resonatehq.io/debug/errors, andrn8.io/e/*forwarding is not yet live (still 404), so the holding condition from 2025 still applies.I recently hit a "Function not registered" error. Example:
I believe this is equivalent to the FunctionNotRegisteredException (03) error in TS:
resonatehq/resonate-sdk-ts#158 (comment)
Let's add the equivalent error name, error code, and link to the code here: https://docs.resonatehq.io/operate/errors to the Python SDK.
Additionally, this error currently causes a process exit - so the node stops working.
We may want to revisit that, and consider logging by default for this specific error.