RULESET_NOT_FOUND
No stored ruleset or name binding matches the reference given. HTTP 404. Compile the source again, or load by the name it was saved under.
The ruleset_hash or name you referenced is not in the store this credential can see.
The envelope
{"ok": false,
"error": {"code": "RULESET_NOT_FOUND",
"message": "no ruleset with hash 7f3a... in this namespace",
"docs": "https://docs.agents.jaxon.ai/errors/ruleset-not-found.md"},
"versions": {"...": "..."}}
Why it happens
- The hash was never stored here. A compile stores the source under its hash in the caller's namespace. A hash produced under a different credential, a different connector, or a different deployment is not visible to this one.
- A hash remembered from earlier in a conversation has drifted. The model re-typed it, or the source was edited and the hash it now holds belongs to the previous revision that was never saved.
- A name that was never bound.
dsail_load_ruleset(name)needs a name thatdsail_save_rulesetor an approval withnamebound.dsail_list_rulesetsshows what exists. - The evaluation credential expired. Evaluation credentials expire; the store persists, the visibility does not.
The fix
- Have the source? Compile it again — the payload is pure over the bytes, so the same source gives the same hash — or pass
sourceto the check directly instead of a hash. - Saved under a name? Load it by name and use the
ruleset_hashthe load returns, byte-for-byte. - Need to share a ruleset across credentials? A full credential can be bound to the connector's namespace by Jaxon.
See also: Error codes.