Skip to content

Access, error code and throttle errors

Codes that start with seampact/access/ and seampact/derive/.

Code Cause and fix
seampact/access/deny-by-default A route has no identity and no public access. Set identity: <name>, or access: { public: "<reason>" }, on the route or a node above it.
seampact/access/identity-reference The identity is not declared. Declare it under identities, or fix the name.
seampact/access/requirement-entry A name in requires is not in requirements. Declare it, or write { right: ... }.
seampact/access/right-pattern A right does not match conventions.rights.pattern. Rename the right, or change the pattern.
seampact/access/scheme-reference An identity names a scheme that is not declared. Declare it under schemes, or fix the name.
seampact/derive/error-unknown A route attaches a code nobody declares. Declare it under errors with a status, or attach a declared one.
seampact/derive/error-redefined A code is declared again with a different definition. Where you reuse it, attach it with {}, or give one of them another code.
seampact/derive/error-pattern A code does not match conventions.errors.pattern. Rename the code, or change the pattern.
seampact/derive/cache-sensitive A cache family would store a sensitive value that its routes answer. Drop cache or sensitive, or write freshness: never.

Throttle messages are logged with a 500 and carry no code. A throttler refused the request, and the contract’s error code needs params that no Retry-After gave. Let the throttler set Retry-After (seconds or an HTTP date), or answer the code from the handler with its params (on NestJS, throw ContractException(code, params)).

You see in the log Cause and fix
seampact: a 429 error on '<operation>' maps to '<code>', which declares required params A throttler answered 429 and the code needs params. Set Retry-After, or answer from the handler.
seampact: api '<api>' operation '<op>': a native layer refused with the role 'rateLimited' A framework throttler refused, and the operation declares no code that answers it, or one whose required params the refusal does not give. Declare a rateLimited error on the operation, and set Retry-After.

See Access and Errors.