Error catalog
Every operational error class registered via b.frameworkError.defineClass. Each class extends FrameworkError and exposes a stable shape: { name, code, message, isFrameworkError: true }. Catch with err instanceof b.FrameworkError for the unified branch, or check err.name / the per-class isXxxError flag for fine-grained handling.
The class name and the per-namespace code prefix are stable across patch releases. Code suffixes after the first / are documented per primitive — operators matching on full codes should pin to a minor version.
Total classes harvested: 400. Generated 2026-08-08T16:39:14.940Z.
Async #
| Class | Constructor | Flags | Code namespaces | Description |
|---|---|---|---|---|
CacheErrorframework-error.js | (code, message) | alwaysPermanent | none harvested | CacheError is alwaysPermanent: bad opts / missing key / closed-state errors are programming bugs, not transient. Backend-level transient failures (cluster DB unavailable mid-fetch) become observability + audit signals; they don't escape as exceptions to the caller. |
CacheStatusErrorcache-status.js | (code, message) | alwaysPermanent | cache-status/* | (no prose comment in source) |
JobsErrorframework-error.js | (code, message, permanent) | default | none harvested | (no prose comment in source) |
LogStreamErrorframework-error.js | (code, message, permanent, statusCode) | withStatusCode | none harvested | (no prose comment in source) |
QueueErrorframework-error.js | (code, message, permanent) | default | queue/* | (no prose comment in source) |
SchedulerErrorframework-error.js | (code, message, permanent) | default | scheduler/* | (no prose comment in source) |
WebhookDispatcherErrorframework-error.js | (code, message) | alwaysPermanent | none harvested | WebhookDispatcherError covers the durable signed-webhook delivery store (b.webhook.dispatcher): endpoint registration, fan-out, retry/backoff, and dead-letter operations. Distinct from WebhookError (the stateless sign/verify surface) so the persistence-layer error codes stay separable. |
WebhookErrorframework-error.js | (code, message) | alwaysPermanent | webhook/* | (no prose comment in source) |
WebhookHmacErrorwebhook-hmac.js | (code, message) | alwaysPermanent | webhook-hmac/* | (no prose comment in source) |
Audit #
| Class | Constructor | Flags | Code namespaces | Description |
|---|---|---|---|---|
AuditDailyReviewErrorframework-error.js | (code, message) | alwaysPermanent | none harvested | AuditDailyReviewError covers PCI DSS 4.0 Req 10.4.1.1 daily-review misconfiguration: bad cron / lookback / severity threshold, missing notify callback under threshold-bearing posture, audit-source not queryable. Permanent — config-time errors. |
AuditSegregationErrorframework-error.js | (code, message) | alwaysPermanent | audit/* | AuditSegregationError covers SOX §404 / SOC 2 CC1.3 actor-binding violations: bound-actor mismatch on emit, missing db-role context, trigger-installation failure when sox-404 / soc2 posture demands it. Permanent — operator-misconfig or in-flight identity mismatch. |
AuditSignErroraudit-sign.js | (code, message) | alwaysPermanent | audit-sign/* | AuditSignError is thrown by init() for fatal boot-time conditions (conflicting on-disk key files, passphrase rejected, schema invalid). The caller — CLI or app boot — catches and translates to an exit code; lib/ never calls process.exit unilaterally. |
AuditToolsErroraudit-tools.js | (code, message) | alwaysPermanent | audit-tools/* | (no prose comment in source) |
Auth #
| Class | Constructor | Flags | Code namespaces | Description |
|---|---|---|---|---|
ApiKeyErrorframework-error.js | (code, message) | alwaysPermanent | none harvested | (no prose comment in source) |
AuthBotChallengeErrorframework-error.js | (code, message) | alwaysPermanent | auth-bot-challenge/* | AuthBotChallengeError — challenge / escalation refusal raised by b.authBotChallenge when the operator-supplied challengeFn is missing, returns a non-boolean verdict, or throws. Permanent. |
AuthErrorframework-error.js | (code, message) | alwaysPermanent | auth/*, auth-aal/*, auth-bearer/*, auth-ciba/*, auth-dpop/*, auth-jwt/*, auth-jwt-external/*, auth-oid4vci/*, auth-oid4vp/*, auth-openid-federation/*, auth-passkey/*, auth-password/*, auth-saml/*, auth-sd-jwt-vc/*, auth-step-up/*, auth-totp/* | AuthError covers password / passkey / TOTP failures at the framework layer (lib/auth/*). Always permanent — auth failures are not transient ("retry might work"); they're "this credential doesn't match" or "this input was malformed". |
AuthJarErrorauth/jar.js | (code, message) | alwaysPermanent | auth-jar/* | (no prose comment in source) |
LockoutErrorframework-error.js | (code, message) | alwaysPermanent | none harvested | LockoutError is alwaysPermanent: misconfig at create() and bad keys at recordFailure/recordSuccess/check/unlock are programming bugs. The "account is currently locked" condition is NOT an error — recordFailure returns { locked: true, lockedUntil } so the caller decides the response. |
PermissionsErrorframework-error.js | (code, message) | alwaysPermanent | none harvested | (no prose comment in source) |
SessionDeviceBindingErrorframework-error.js | (code, message) | alwaysPermanent | session-device-binding/* | SessionDeviceBindingError — fingerprint-drift refusal raised by b.sessionDeviceBinding when create-time opts are malformed or the boundKeyResolver returns a non-Buffer. Permanent. |
SessionErrorframework-error.js | (code, message, permanent) | default | session/* | (no prose comment in source) |
Cluster #
| Class | Constructor | Flags | Code namespaces | Description |
|---|---|---|---|---|
ClusterErrorframework-error.js | (code, message, permanent) | default | FENCED_OUT/* | (no prose comment in source) |
ClusterProviderErrorframework-error.js | (code, message, permanent) | default | none harvested | (no prose comment in source) |
Compliance #
| Class | Constructor | Flags | Code namespaces | Description |
|---|---|---|---|---|
ComplianceEaaErrorcompliance-eaa.js | (code, message) | alwaysPermanent | compliance-eaa/* | (no prose comment in source) |
ComplianceErrorframework-error.js | (code, message) | alwaysPermanent | compliance/*, compliance-ai-act/* | ComplianceError covers compliance-coordinator misuse: unknown posture name, runtime-switch refusal, assertion failures. Permanent — these are configuration errors, not transient. |
DdlChangeControlErrorframework-error.js | (code, message) | alwaysPermanent | ddl-change-control/* | DdlChangeControlError covers SOX §404 / PCI-DSS DDL change-control violations: insufficient approvers, approval window violation, signature-mismatch on apply, duplicate approval, application of an already-applied or rejected change. Permanent. |
DoraErrorframework-error.js | (code, message) | alwaysPermanent | dora/* | DoraError covers DORA Article 17 incident-reporting workflow errors (classification refusal, report-shape validation, ESA-template generation, audit-chain integration). Permanent — these are configuration / submission errors, not transient. |
Fda21Cfr11Errorframework-error.js | (code, message) | alwaysPermanent | fda21cfr11/* | Fda21Cfr11Error covers FDA 21 CFR Part 11 §11.10(e) audit-content shape + §11.50/§11.70 electronic-signature shape violations: missing printedName / dateTimeUtc / signatureMeaning / predicateRule / signed record bind, before/after pair missing on a GxP audit row, signature- algorithm allowlist drift, posture interceptor refusal. Permanent — every case is operator-supplied data shape, not transient. |
LegalHoldErrorframework-error.js | (code, message) | alwaysPermanent | none harvested | LegalHoldError covers subject-level legal-hold registry violations: missing subjectId, malformed reason/citation, duplicate placement, release-without-placement, bad opts. Permanent — config / API shape errors, not transient. |
LegalHoldErrorlegal-hold.js | (code, message) | alwaysPermanent | none harvested | (no prose comment in source) |
WormViolationErrorframework-error.js | (code, message) | alwaysPermanent | none harvested | WormViolationError covers operator-declared WORM (write-once-read- many) trigger-installation failures and posture-asserted boot gates: declareWorm called on a non-existent table, table requires WORM under sec-17a-4 / finra-4511 / fda-21cfr11 but none declared, operator attempted to drop the WORM trigger outside a sanctioned retention.purge flow. Permanent. |
Crypto #
| Class | Constructor | Flags | Code namespaces | Description |
|---|---|---|---|---|
AcmeErrorframework-error.js | (code, message, permanent, statusCode) | withStatusCode | none harvested | AcmeError — RFC 8555 ACME + RFC 9773 ACME Renewal Information (ARI) protocol violations raised by b.acme: bad opts at create (non-https directory URL, missing accountKey, malformed audit hook), directory-fetch failure shape, newOrder/finalize/retrieveCert HTTP-status / response-shape errors, ARI window parse failures, retrieveCert returning non-PEM bytes, renewIfDue called before retrieveCert / before ARI URL is reachable. Permanent — every case is operator-misconfig or a CA-side response shape the framework refuses to coerce. withStatusCode so HTTP-shaped failures from the CA surface as a typed status for retry classification. |
HpkeErrorframework-error.js | (code, message) | alwaysPermanent | none harvested | HpkeError — RFC 9180 Hybrid Public-Key Encryption (lib/crypto-hpke.js). Bad opts at the call site, KEM encap/decap failures, AEAD tag failures. |
HttpSigErrorframework-error.js | (code, message) | alwaysPermanent | none harvested | HttpSigError — RFC 9421 HTTP Message Signatures (lib/http-message- signature.js). Bad opts, missing covered components, unsupported alg. |
TlsExporterErrorframework-error.js | (code, message) | alwaysPermanent | none harvested | TlsExporterError — RFC 9266 TLS-Exporter channel binding (lib/tls-exporter.js). Non-TLS sockets, TLS<1.3 sessions, short exporter outputs. |
Framework #
| Class | Constructor | Flags | Code namespaces | Description |
|---|---|---|---|---|
ArgParserErrorarg-parser.js | (code, message) | alwaysPermanent | arg-parser/* | (no prose comment in source) |
ArgParserErrorframework-error.js | (code, message) | alwaysPermanent | arg-parser/* | ArgParserError — b.argParser declarative CLI argument parser (lib/arg-parser.js). Bad opts at create time (unsupported flag type, duplicate flag/alias, malformed flag/command name, prototype-polluting name like __proto__/constructor/prototype), bad parse-time argv (not an array, non-string elements, unknown flag/command, missing required flag, unparseable number/boolean coercion, missing flag value). alwaysPermanent — every case is operator-shape misuse the framework will not coerce; the operator fixes the spec or the argv source. |
DaemonErrordaemon.js | (code, message) | alwaysPermanent | daemon/* | (no prose comment in source) |
DaemonErrorframework-error.js | (code, message) | alwaysPermanent | daemon/* | DaemonError — b.daemon (lib/daemon.js). Bad opts at start/stop, pidfile already held by a live PID, spawn failure for detached-fork mode, log-file open failure, kill() failure outside ESRCH. alwaysPermanent — every case is operator-misconfig or a host-environment condition the framework refuses to coerce; transient-shaped failures (process already exited between read and kill) are surfaced as a non-error "stopped: false, reason: stale" return. |
HandlerErrorframework-error.js | (code, message, cause) | withCause | none harvested | (no prose comment in source) |
HttpClientErrorframework-error.js | (code, message, permanent, statusCode) | withStatusCode | none harvested | HttpClientError — outbound httpClient streaming primitives (b.httpClient.downloadStream / b.httpClient.uploadMultipartStream). withStatusCode so HTTP-shaped failures (404, 500, 503) carry the upstream status for retry classification. Codes follow the "httpclient/<reason>" shape: hash-mismatch, dest-not-writable, missing-file, http-error, etc. |
I18nErrorframework-error.js | (code, message) | alwaysPermanent | none harvested | I18nError is alwaysPermanent: bad locale tags, malformed translation trees, missing-key in throw mode, and bad input to formatters are programming bugs. Missing keys in default ("return-key") mode return the key without throwing — runtime hot-path semantics, not error. |
I18nMessageFormatErrori18n-messageformat.js | (code, message) | alwaysPermanent | none harvested | (no prose comment in source) |
KeychainErrorframework-error.js | (code, message) | alwaysPermanent | keychain/* | KeychainError — b.keychain (lib/keychain.js). Bad opts at config time, native-tool exec failure (security / secret-tool / PowerShell CredentialManager), file-fallback unseal / shape failure, oversized native-tool output. alwaysPermanent — every case is operator-misconfig or a host-environment condition the framework refuses to coerce. |
NotifyErrorframework-error.js | (code, message) | alwaysPermanent | none harvested | NotifyError is alwaysPermanent: bad opts, unknown channels, transport contract violations are programming bugs. Per-send transient failures (the kind retry can recover) are surfaced from the underlying transport with their own shape; only after retry exhaustion does notify wrap them into NotifyError SEND_FAILED — at that point they ARE permanent. |
RouterErrorframework-error.js | (code, message) | alwaysPermanent | router/* | RouterError covers operator-shape violations on the router primitive: invalid `allowedRedirectOrigins` opt at create time, a malformed `use()` mount (non-string / non-array prefix, a prefix not beginning with "/", a missing or non-function middleware), and cross-origin `res.redirect()` targets that are not on the allowlist. alwaysPermanent — every case is config-time programming bug or an outbound-redirect shape error that retry will not recover. |
SandboxErrorframework-error.js | (code, message) | alwaysPermanent | sandbox/* | SandboxError covers operator-supplied transform-source isolation failures: bad opts at create() (non-string source, non-finite timeoutMs / maxBytes, allowed-list contains a non-allowlisted global), worker-thread spawn failure, timeout exceeded, peak-bytes overrun, non-allowlisted-global access, output-shape-too-large, runtime exceptions inside the transform. Permanent — every case is either operator-misconfig or a transform that the host should refuse rather than retry. Operator decides at the call site whether to surface the refusal as a 4xx or to fall back to a default value. |
SeederErrorframework-error.js | (code, message) | alwaysPermanent | none harvested | SeederError is alwaysPermanent: load failures, bad-shape seed files, missing deps, and cycle errors are programming bugs. Per-seed runtime failures get wrapped in this class with the seed name in the message — operators see "seeders/run-failed: 0042-x.js: <cause>" not a raw driver exception. |
SelfUpdateErrorframework-error.js | (code, message) | alwaysPermanent | selfupdate/* | SelfUpdateError — b.selfUpdate (lib/self-update.js). Bad opts at poll/verify/swap/rollback, non-2xx releases-feed response, malformed JSON, missing tag_name, signature verify mismatch, atomic-swap or rollback failure, cross-device install failure. alwaysPermanent — every case is operator-misconfig or a release-feed shape the framework refuses to coerce. Operators wrap the call in their own retry policy when polling against a flaky CDN. |
SelfUpdateErrorself-update.js | (code, message) | alwaysPermanent | selfupdate/* | (no prose comment in source) |
SlugErrorframework-error.js | (code, message) | alwaysPermanent | none harvested | (no prose comment in source) |
TestingErrorframework-error.js | (code, message) | alwaysPermanent | none harvested | TestingError is alwaysPermanent: bad inputs to test helpers (NaN clock, non-fn predicate, path-traversal tempDir prefix) and waitFor timeouts are programming bugs at test-write time. |
WatcherErrorframework-error.js | (code, message) | alwaysPermanent | watcher/* | WatcherError — b.watcher recursive-fs.watch wrapper (lib/watcher.js). Bad opts at create (non-string root, missing root, bad ignore pattern, non-finite debounceMs, non-function hook), recursive-watch unsupported on the host platform/kernel, fs.watch start failure, pending-event queue overflow under runaway-directory pressure. alwaysPermanent — every case is config-misuse or a host-environment refusal the framework will not coerce. |
WorkerPoolErrorframework-error.js | (code, message) | alwaysPermanent | workerpool/* | WorkerPoolError — b.workerPool (lib/worker-pool.js). Bad opts at config (size / maxQueueDepth / taskTimeoutMs out of range, non- absolute scriptPath, non-function onExit), runtime queue-full, per-task timeout, worker spawn / error / non-zero exit, malformed reply envelope, terminate-aborted tasks. alwaysPermanent — every case is operator-misconfig or worker-script bug; retry without a fix would just repeat the failure. |
Guard #
| Class | Constructor | Flags | Code namespaces | Description |
|---|---|---|---|---|
GuardAgentRegistryErrorguard-agent-registry.js | (code, message) | alwaysPermanent | agent-registry/* | (no prose comment in source) |
GuardAllErrorframework-error.js | (code, message) | alwaysPermanent | none harvested | GuardAllError covers parity-check failures, exceptFor opt validation, and override opt validation in the b.guardAll registry. alwaysPermanent — every case is a config-time programming bug, not a transient runtime condition. |
GuardArchiveErrorframework-error.js | (code, message) | alwaysPermanent | archive/* | GuardArchiveError covers archive-shape violations: zip-slip path traversal, symlink + hardlink escape, decompression-ratio bombs, nested-archive depth, file-count + total-size + per-entry-size caps, magic-byte / format-claim mismatch, duplicate entries, encryption- claim mismatch. alwaysPermanent. |
GuardAuthErrorframework-error.js | (code, message) | alwaysPermanent | none harvested | GuardAuthError covers composite auth-bundle violations: aggregates guardJwt + guardOauth + b.cookies.parseSafe + light header-smuggling detection into a single gate with `source` tagging on each issue. alwaysPermanent. |
GuardCidrErrorframework-error.js | (code, message) | alwaysPermanent | none harvested | GuardCidrError covers CIDR identifier violations: shape malformation, IPv4 octet overflow, IPv6 zero-group ambiguity, mask out-of-range, network-address misalignment (host bits set), reserved-range membership (RFC 1918, loopback, link-local, multicast, documentation, benchmarking, CGNAT, IPv6 ULA / link-local / multicast / documentation), IPv4-mapped IPv6 dual-stack confusion, BIDI / zero-width / control / null-byte universal refuse. alwaysPermanent. |
GuardCsvErrorframework-error.js | (code, message) | alwaysPermanent | none harvested | GuardCsvError covers csv-shape violations on the serialize / sanitize / validate paths. alwaysPermanent — chunk-shape errors / formula-injection attempts / schema drift are all caller-shape errors. |
GuardDomainErrorframework-error.js | (code, message) | alwaysPermanent | none harvested | GuardDomainError covers domain-name identifier violations: RFC 1035 length-cap overflow, RFC 952/1123 LDH-rule violations, IDN homograph / mixed-script confusables, BIDI / zero-width / control-byte injection, Punycode malformation, RFC 6761 special-use domains, IPv4-as-domain confusion (CVE-2021-22931), IPv6 bracket literals, single-label / TLD- only strings, wildcard labels, RFC 8552 underscore-label misuse, DGA high-entropy labels. alwaysPermanent. |
GuardDsnErrorguard-dsn.js | (code, message) | alwaysPermanent | guard-dsn/* | (no prose comment in source) |
GuardEmailErrorframework-error.js | (code, message) | alwaysPermanent | none harvested | GuardEmailError covers email-shape violations: SMTP smuggling (bare CR/LF in body, embedded SMTP verbs), CRLF header injection, RFC 5321 /5322 local-part / domain / total-length caps, multi-@ violations, IDN homograph spoofing (mixed-script confusable codepoints), display- name vs envelope mismatch, bare IP literal addresses, comment syntax in addresses, bidi/null/control chars in headers + addresses, header- folding smuggling, BOM injection. alwaysPermanent. |
GuardEnvelopeErrorguard-envelope.js | (code, message) | alwaysPermanent | guard-envelope/* | (no prose comment in source) |
GuardEventBusPayloadErrorguard-event-bus-payload.js | (code, message) | alwaysPermanent | event-bus-payload/* | (no prose comment in source) |
GuardEventBusTopicErrorguard-event-bus-topic.js | (code, message) | alwaysPermanent | event-bus-topic/* | (no prose comment in source) |
GuardFilenameErrorframework-error.js | (code, message) | alwaysPermanent | filename.extraction-absolute/*, filename.extraction-bad-root/*, filename.extraction-drive-prefix/*, filename.extraction-empty/*, filename.extraction-escape/*, filename.extraction-leading-trailing/*, filename.extraction-ntfs-ads/*, filename.extraction-null-byte/*, filename.extraction-path-max/*, filename.extraction-realpath/*, filename.extraction-realpath-escape/*, filename.extraction-reserved-name/*, filename.extraction-root-realpath/*, filename.extraction-traversal/*, filename.extraction-traversal-encoded/*, filename.extraction-unc/* | GuardFilenameError covers filename-shape violations: path traversal, null-byte truncation, Windows reserved names (CON / PRN / AUX / ...), NTFS alternate data streams, leading/trailing whitespace + trailing dots (Windows strips them silently), unicode bidi/RTLO file-name spoofing, overlong UTF-8 encoding, length caps. alwaysPermanent. |
GuardGraphqlErrorframework-error.js | (code, message) | alwaysPermanent | none harvested | GuardGraphqlError covers GraphQL request-shape violations: query depth bombs (N² query-shape DoS), alias-bomb breadth DoS, introspection in production, batch-query DoS, persisted-query enforcement, operation-name allowlist drift, variable type confusion, oversized query / variable / total bytes, BIDI / null / control / zero-width universal refuse on the query string. alwaysPermanent. |
GuardHtmlErrorframework-error.js | (code, message) | alwaysPermanent | none harvested | GuardHtmlError covers html-shape violations on validate / sanitize / escape paths. alwaysPermanent — XSS attempts / dangerous-tag detections / DOM clobbering are all caller-shape errors. |
GuardHtmlWcagErrorguard-html-wcag.js | (code, message) | alwaysPermanent | guard-html-wcag/* | (no prose comment in source) |
GuardIdempotencyKeyErrorguard-idempotency-key.js | (code, message) | alwaysPermanent | idempotency-key/* | (no prose comment in source) |
GuardImageErrorframework-error.js | (code, message) | alwaysPermanent | none harvested | GuardImageError covers image-metadata violations: magic-byte vs declared-MIME mismatch (drive-by content-type confusion class), polyglot (multiple format magic bytes — PHP-in-JPEG / JS-in-PNG class), unknown magic-byte, SVG-routing-via-image bypass, oversized dimensions / frame count, oversized total bytes. alwaysPermanent. |
GuardImapCommandErrorguard-imap-command.js | (code, message) | alwaysPermanent | guard-imap-command/* | (no prose comment in source) |
GuardJmapErrorguard-jmap.js | (code, message) | alwaysPermanent | guard-jmap/*, urn:ietf:params:jmap:error:invalidArguments/*, urn:ietf:params:jmap:error:limit/*, urn:ietf:params:jmap:error:requestTooLarge/*, urn:ietf:params:jmap:error:unknownCapability/* | (no prose comment in source) |
GuardJsonErrorframework-error.js | (code, message) | alwaysPermanent | none harvested | GuardJsonError covers json-shape violations: prototype pollution (__proto__/constructor/prototype), depth + breadth + key-count bombs, duplicate keys, NaN/Infinity/comments (JSON5 extensions), bidi/null in string values, numeric precision loss, total-size cap. alwaysPermanent. |
GuardJsonpathErrorframework-error.js | (code, message) | alwaysPermanent | none harvested | GuardJsonpathError covers JSONPath identifier violations: filter expression (`?(...)` — RCE class in eval-based implementations), script expression, JS-source hints (`eval` / `new` / `function` / `=>` / `;`), excessive bracket nesting, recursive-descent depth bombs, oversized pattern, BIDI / null / control / zero-width universal refuse. alwaysPermanent. |
GuardJwtErrorframework-error.js | (code, message) | alwaysPermanent | none harvested | GuardJwtError covers JWT identifier violations: shape malformation (not 3 base64url segments), alg=none refuse (canonical CVE-class — CVE-2015-9235 jsonwebtoken alg:none / CVE-2018-0114 Cisco node-jose embedded-JWK key confusion), alg-allowlist drift, kid path-traversal (operator keyResolver path-injection class), typ confusion, oversized header / payload / signature, exp / nbf / iat sanity, missing required claims, unknown crit fields (RFC 7515 §4.1.11), BIDI / null / control / zero-width universal refuse. alwaysPermanent. |
GuardListIdErrorguard-list-id.js | (code, message) | alwaysPermanent | guard-list-id/* | (no prose comment in source) |
GuardListUnsubscribeErrorguard-list-unsubscribe.js | (code, message) | alwaysPermanent | guard-list-unsubscribe/* | (no prose comment in source) |
GuardMailComposeErrorguard-mail-compose.js | (code, message) | alwaysPermanent | mail-compose/* | (no prose comment in source) |
GuardMailMoveErrorguard-mail-move.js | (code, message) | alwaysPermanent | mail-move/* | (no prose comment in source) |
GuardMailQueryErrorguard-mail-query.js | (code, message) | alwaysPermanent | mail-query/* | (no prose comment in source) |
GuardMailReplyErrorguard-mail-reply.js | (code, message) | alwaysPermanent | mail-reply/* | (no prose comment in source) |
GuardMailSieveErrorguard-mail-sieve.js | (code, message) | alwaysPermanent | mail-sieve/* | (no prose comment in source) |
GuardManageSieveCommandErrorguard-managesieve-command.js | (code, message) | alwaysPermanent | guard-managesieve-command/* | (no prose comment in source) |
GuardMarkdownErrorframework-error.js | (code, message) | alwaysPermanent | none harvested | GuardMarkdownError covers markdown-shape violations: raw-HTML smuggling (including the CVE-2026-30838 whitespace-in-tag-name bypass), dangerous link / image / autolink / reference-link URL schemes (javascript: / data: text/html / vbscript: / file: / jar:), entity-encoded scheme bypass, front-matter payloads, ReDoS-prone emphasis / nesting / autolink mass, HTML-comment smuggling, code-fence language injection, depth + link count + image count + line count + size caps. alwaysPermanent. |
GuardMessageIdErrorguard-message-id.js | (code, message) | alwaysPermanent | message-id/* | (no prose comment in source) |
GuardMimeErrorframework-error.js | (code, message) | alwaysPermanent | none harvested | GuardMimeError covers RFC 6838 media-type identifier violations: shape malformation (missing `/`, bad type/subtype tokens), parameter injection (multiple params, bad name/value tokens, malformed quoted- string), wildcard `*/*` outside Accept context, vendor / personal / unregistered tree namespaces, risky-type refuse list (executable + script-host content types), BIDI / zero-width / control / null-byte universal refuse. alwaysPermanent. |
GuardOauthErrorframework-error.js | (code, message) | alwaysPermanent | none harvested | GuardOauthError covers OAuth flow-shape violations: PKCE missing / non-S256 (downgrade-attack class), state missing (RFC 6749 §10.12 CSRF class), redirect_uri not in operator allowlist (exact-match per OAuth 2.1), response_type allowlist drift, scope-token shape (RFC 6749 §3.3), issuer missing on callback (RFC 9207 IdP-mix-up), authorization-code reuse (RFC 6749 §10.5), oversized parameter, BIDI / null / control / zero-width universal refuse. alwaysPermanent. |
GuardPdfErrorframework-error.js | (code, message) | alwaysPermanent | none harvested | GuardPdfError covers PDF-metadata violations: magic-byte missing, JavaScript action (`/JS` / `/JavaScript` — RCE class), Launch action, OpenAction trigger, embedded-file presence + count cap, encrypted PDF refuse, polyglot signal, oversized bytes / page count. alwaysPermanent. |
GuardPop3CommandErrorguard-pop3-command.js | (code, message) | alwaysPermanent | guard-pop3-command/* | (no prose comment in source) |
GuardPostureChainErrorguard-posture-chain.js | (code, message) | alwaysPermanent | posture-chain/* | (no prose comment in source) |
GuardRegexErrorframework-error.js | (code, message) | alwaysPermanent | none harvested | GuardRegexError covers regex-pattern identifier violations: nested quantifier ReDoS class (CVE-2024-21538 / CVE-2022-25929), alternation with quantifier, bounded-repeat upper-bound overflow, lookaround with internal quantifier, oversized pattern, BIDI / null / control / zero-width universal refuse. alwaysPermanent. |
GuardSagaConfigErrorguard-saga-config.js | (code, message) | alwaysPermanent | saga-config/* | (no prose comment in source) |
GuardShellErrorframework-error.js | (code, message) | alwaysPermanent | none harvested | GuardShellError covers shell-arg identifier violations: POSIX + cmd.exe metacharacters, $(...) / ${...} command + parameter substitution, backtick substitution, process substitution (`<(...)` / `>(...)`), `$VAR` parameter expansion, newline injection, leading-hyphen option-flag injection (`-rf` / `--exec` class), BIDI / null / control / zero-width universal refuse. alwaysPermanent. |
GuardSmtpCommandErrorguard-smtp-command.js | (code, message) | alwaysPermanent | guard-smtp-command/* | (no prose comment in source) |
GuardSnapshotEnvelopeErrorguard-snapshot-envelope.js | (code, message) | alwaysPermanent | snapshot-envelope/* | (no prose comment in source) |
GuardSqlErrorframework-error.js | (code, message) | alwaysPermanent | none harvested | GuardSqlError covers raw-SQL refusals from the b.guardSql guard: the OS-reach floor (file / exec / FDW / extension / privilege-pivot across Postgres / SQLite / MySQL), stacked statements, comment smuggling, embedded string literals in a fragment, invalid UTF-8 (CVE-2025-1094 encoding-bypass class), time-based probes, schema recon, and the migration DDL-verb allowlist. DOT-style codes (sql.refuse / sql.stacked / sql.file-access / ...) so they don't collide with SafeSqlError's slash codes (sql/bad-shape / ...). alwaysPermanent. |
GuardStreamArgsErrorguard-stream-args.js | (code, message) | alwaysPermanent | stream-args/* | (no prose comment in source) |
GuardSvgErrorframework-error.js | (code, message) | alwaysPermanent | none harvested | GuardSvgError covers svg-shape violations: dangerous tags (script / foreignObject / use cross-origin / handler), DOCTYPE entity expansion (billion laughs / XXE), animation-element attributeName targeting href, SVGZ compressed payloads, SSRF-shape href references. alwaysPermanent. |
GuardTemplateErrorframework-error.js | (code, message) | alwaysPermanent | none harvested | GuardTemplateError covers Server-Side Template Injection (SSTI) identifier violations: Jinja / Django / Twig / Liquid / Handlebars / AngularJS `{{...}}` + `{%...%}` shapes (CVE-2024-22195 / 26139 / 23348 class), ERB / Tornado `<%...%>`, Pug `#{...}` / `!{...}` interpolation, Mako / Velocity / Tornado `${...}`, Velocity directives (#set / #if / #foreach), BIDI / null / control / zero- width universal refuse. alwaysPermanent. |
GuardTenantIdErrorguard-tenant-id.js | (code, message) | alwaysPermanent | tenant-id/* | (no prose comment in source) |
GuardTextErrorframework-error.js | (code, message) | alwaysPermanent | none harvested | GuardTextError covers free-text codepoint-threat violations on the validate / sanitize / gate paths (bidi-override / control / null / zero-width / Unicode-Tags / mixed-script-confusable). alwaysPermanent — every case is a hostile-codepoint detection or a caller-shape opt error. |
GuardTimeErrorframework-error.js | (code, message) | alwaysPermanent | none harvested | GuardTimeError covers RFC 3339 / ISO 8601 datetime identifier violations: shape malformation, year-window overflow (pre-epoch / far-future), naive datetime (no offset), non-UTC offset, leap-second `60` field policy, excessive fractional precision, date-only / time-only refuse, BIDI / zero-width / control / null-byte universal refuse, structural range violations (month / day-in-month / hour / minute / second). alwaysPermanent. |
GuardTraceContextErrorguard-trace-context.js | (code, message) | alwaysPermanent | trace-context/* | (no prose comment in source) |
GuardUuidErrorframework-error.js | (code, message) | alwaysPermanent | none harvested | GuardUuidError covers UUID identifier violations: shape malformation (non-canonical / non-hex), RFC 9562 §4.2 unassigned version digits, non-RFC 4122 variant bits, nil UUID (§5.9) / max UUID (§5.10) sentinel leakage, urn:uuid: + Microsoft GUID braces forms outside the operator's declared formatPolicy, BIDI / zero-width / control-byte / null-byte universal refuse. alwaysPermanent. |
GuardXmlErrorframework-error.js | (code, message) | alwaysPermanent | none harvested | GuardXmlError covers xml-shape violations: XXE, billion-laughs entity expansion, parameter entities, external DTD subset, XInclude, schema- fetch (xsi:schemaLocation), processing instructions, CDATA, depth + element-count + attribute-count caps. alwaysPermanent. |
GuardYamlErrorframework-error.js | (code, message) | alwaysPermanent | none harvested | GuardYamlError covers yaml-shape violations: deserialization-tag injection (!!python/object / !!java.util.HashMap / custom !Class), anchor recursion (billion laughs), Norway-problem implicit booleans, leading-zero octals, duplicate keys, multi-document streams, depth + node-count + size caps. alwaysPermanent. |
HttpSurface #
| Class | Constructor | Flags | Code namespaces | Description |
|---|---|---|---|---|
FileUploadErrorframework-error.js | (code, message) | alwaysPermanent | none harvested | FileUploadError is alwaysPermanent: chunk-hash mismatch / oversized chunk / oversized total file / manifest verification failure are all caller-shape errors that won't succeed on retry. Operators wrap the route handler with their own retry policy if they want client-side resumability. |
GateContractErrorframework-error.js | (code, message) | alwaysPermanent | none harvested | GateContractError covers gate-contract violations (operator-supplied gate is malformed / hook threw / runtime exceeded). alwaysPermanent because these are programming-bug-shaped, not transient. |
StaticServeErrorframework-error.js | (code, message, permanent, statusCode) | withStatusCode | none harvested | StaticServeError covers the download-side surface of staticServe.create. withStatusCode: true so the framework can translate to operator-meaningful HTTP responses (403 permission_denied, 404 not_found, 412 precondition_failed, 416 range_not_satisfiable, 429 quota_exceeded, 451 retention_blocked). |
Operational #
| Class | Constructor | Flags | Code namespaces | Description |
|---|---|---|---|---|
AccessLockErrorauth/access-lock.js | (code, message) | alwaysPermanent | auth-access-lock/* | (no prose comment in source) |
AdapterErrorarchive-adapters.js | (code, message) | alwaysPermanent | adapter/* | (no prose comment in source) |
AdverseDecisionErrorai-adverse-decision.js | (code, message) | alwaysPermanent | ai-adverse/* | (no prose comment in source) |
AedtBiasAuditErrorai-aedt-bias-audit.js | (code, message) | alwaysPermanent | aedt/* | (no prose comment in source) |
AgeGateErrormiddleware/age-gate.js | (code, message) | alwaysPermanent | age-gate/* | (no prose comment in source) |
AgentEnvelopeMacErroragent-envelope-mac.js | (code, message) | alwaysPermanent | agent-envelope-mac/* | (no prose comment in source) |
AgentEventBusErroragent-event-bus.js | (code, message) | alwaysPermanent | agent-event-bus/* | (no prose comment in source) |
AgentIdempotencyErroragent-idempotency.js | (code, message) | alwaysPermanent | agent-idempotency/* | (no prose comment in source) |
AgentOrchestratorErroragent-orchestrator.js | (code, message) | alwaysPermanent | agent-orchestrator/* | (no prose comment in source) |
AgentPostureChainErroragent-posture-chain.js | (code, message) | alwaysPermanent | agent-posture-chain/* | (no prose comment in source) |
AgentSagaErroragent-saga.js | (code, message) | alwaysPermanent | agent-saga/* | (no prose comment in source) |
AgentSnapshotErroragent-snapshot.js | (code, message) | alwaysPermanent | agent-snapshot/* | (no prose comment in source) |
AgentStreamErroragent-stream.js | (code, message) | alwaysPermanent | agent-stream/* | (no prose comment in source) |
AgentTenantErroragent-tenant.js | (code, message) | alwaysPermanent | agent-tenant/* | (no prose comment in source) |
AgentTraceErroragent-trace.js | (code, message) | alwaysPermanent | agent-trace/* | (no prose comment in source) |
AiCapabilityErrorai-capability.js | (code, message) | alwaysPermanent | ai-capability/* | (no prose comment in source) |
AiContentDetectErrorai-content-detect.js | (code, message) | alwaysPermanent | ai-content-detect/* | (no prose comment in source) |
AiDisclosureErrorai-disclosure.js | (code, message) | alwaysPermanent | ai-disclosure/* | (no prose comment in source) |
AiDpErrorai-dp.js | (code, message) | alwaysPermanent | ai-dp/* | (no prose comment in source) |
AiModelManifestErrorai-model-manifest.js | (code, message) | alwaysPermanent | aibom/* | (no prose comment in source) |
AiOutputErrorframework-error.js | (code, message) | alwaysPermanent | none harvested | AiOutputError covers LLM output-handling violations raised by b.ai.output.sanitize / b.ai.output.redact: malformed input shape (non-string), oversized output bypass (exceeds maxBytes cap), bad maxBytes opt, unknown redaction entity. Permanent — caller-shape errors that retry will not recover. OWASP LLM05:2025 (Improper Output Handling) + LLM02:2025 (Sensitive Information Disclosure). |
AiPrefErrorai-pref.js | (code, message) | alwaysPermanent | none harvested | (no prose comment in source) |
AiPromptErrorframework-error.js | (code, message) | alwaysPermanent | none harvested | AiPromptError covers LLM prompt-assembly violations raised by b.ai.prompt.template: malformed segment shape (non-string system / context / user), bad maxBytes / nonceBytes opt, oversized assembled prompt. Permanent — caller-shape errors that retry will not recover. OWASP LLM01:2025 (Prompt Injection — indirect / data-plane injection from untrusted context). |
AiQuotaErrorai-quota.js | (code, message) | alwaysPermanent | ai-quota/* | (no prose comment in source) |
ApiEncryptErrormiddleware/api-encrypt.js | (code, message, permanent, statusCode) | withStatusCode | none harvested | (no prose comment in source) |
AppShutdownErrorapp-shutdown.js | (code, message) | alwaysPermanent | app-shutdown/* | (no prose comment in source) |
ArchiveErrorarchive.js | (code, message) | alwaysPermanent | archive/* | (no prose comment in source) |
ArchiveGzErrorarchive-gz.js | (code, message) | alwaysPermanent | archive-gz/* | (no prose comment in source) |
ArchiveReadErrorarchive-read.js | (code, message) | alwaysPermanent | archive-read/* | (no prose comment in source) |
ArchiveWrapErrorarchive-wrap.js | (code, message) | alwaysPermanent | archive-wrap/* | (no prose comment in source) |
Asn1Errorasn1-der.js | (code, message) | alwaysPermanent | asn1/* | (no prose comment in source) |
AssetlinksErrormiddleware/assetlinks.js | (code, message) | alwaysPermanent | assetlinks/* | (no prose comment in source) |
AsyncApiErrorasyncapi-bindings.js | (code, message) | alwaysPermanent | asyncapi/* | (no prose comment in source) |
AsyncApiErrorasyncapi-traits.js | (code, message) | alwaysPermanent | asyncapi/* | (no prose comment in source) |
AsyncApiErrorasyncapi.js | (code, message) | alwaysPermanent | asyncapi/* | (no prose comment in source) |
AsyncApiErrormiddleware/asyncapi-serve.js | (code, message) | alwaysPermanent | asyncapi/* | (no prose comment in source) |
AtoKillSwitchErrorauth/ato-kill-switch.js | (code, message) | alwaysPermanent | none harvested | (no prose comment in source) |
BackupBundleErrorbackup/bundle.js | (code, message) | alwaysPermanent | backup-bundle/* | (no prose comment in source) |
BackupErrorbackup/index.js | (code, message, permanent) | default | backup/* | (no prose comment in source) |
Base32Errorbase32.js | (code, message) | alwaysPermanent | base32/* | (no prose comment in source) |
BimiErrormail-bimi.js | (code, message) | alwaysPermanent | mail-bimi/* | Pre-existing BimiError covered DNS / record-shape failures. Kept for backwards-compatibility on the existing surface (recordShape / parseRecord / fetchPolicy). The new fetchAndVerifyMark / Tiny-PS surface uses MailBimiError so chain / policy / SVG failures route to a domain-shared class with the documented `bimi/...` codes. |
BodyParserErrormiddleware/body-parser.js | (code, message, permanent, statusCode) | withStatusCode | body-parser/* | (no prose comment in source) |
BootGatesErrorboot-gates.js | (code, message) | alwaysPermanent | boot-gates/* | (no prose comment in source) |
BotChallengeErrorframework-error.js | (code, message) | alwaysPermanent | bot-challenge/* | BotChallengeError — verifier-side errors raised by b.auth.botChallenge (Cloudflare Turnstile / hCaptcha / reCAPTCHA-v3 token siteverify): invalid token shape, timeout, hostname / action allowlist mismatch, provider reported success=false, malformed response body. Permanent. |
BotDiscloseErrormiddleware/bot-disclose.js | (code, message) | alwaysPermanent | none harvested | (no prose comment in source) |
BotGuardErrormiddleware/bot-guard.js | (code, message) | alwaysPermanent | bot-guard/* | (no prose comment in source) |
BoundedMapErrorbounded-map.js | (code, message, permanent) | default | bounded-map/* | (no prose comment in source) |
BreachErrorbreach-deadline.js | (code, message) | alwaysPermanent | breach/*, breach-clock/*, breach-report/* | (no prose comment in source) |
BreakGlassErrorbreak-glass.js | (code, message, permanent) | default | breakglass/* | Errors — all 14 codes documented in the spec. `permanent: true` means caller's input is bad (config-time / call-site reject); `permanent: false` means transient (factor failed, rate-limited) — caller may retry. |
BudrErrorbudr.js | (code, message) | alwaysPermanent | none harvested | (no prose comment in source) |
BundlerErrorbundler.js | (code, message) | alwaysPermanent | bundler/* | (no prose comment in source) |
ByteQuotaErrornetwork-byte-quota.js | (code, message) | alwaysPermanent | byte-quota/* | (no prose comment in source) |
CalendarErrorcalendar.js | (code, message) | alwaysPermanent | calendar/* | (no prose comment in source) |
CborErrorcbor.js | (code, message) | alwaysPermanent | cbor/* | (no prose comment in source) |
CdnCacheControlErrorcdn-cache-control.js | (code, message) | alwaysPermanent | cdn-cache-control/* | (no prose comment in source) |
CertErrorcert.js | (code, message, permanent) | default | cert/* | (no prose comment in source) |
CliErrorcli.js | (code, message) | alwaysPermanent | cli/* | (no prose comment in source) |
ClientHintsErrorclient-hints.js | (code, message) | alwaysPermanent | client-hints/* | (no prose comment in source) |
CloudEventsErrorcloud-events.js | (code, message) | alwaysPermanent | cloud-events/* | (no prose comment in source) |
CmsCodecErrorcms-codec.js | (code, message) | alwaysPermanent | cms/* | (no prose comment in source) |
ComposePipelineErrormiddleware/compose-pipeline.js | (code, message) | alwaysPermanent | compose-pipeline/* | (no prose comment in source) |
CompressionErrormiddleware/compression.js | (code, message) | alwaysPermanent | compression/* | (no prose comment in source) |
ConfigDriftErrorconfig-drift.js | (code, message) | alwaysPermanent | none harvested | (no prose comment in source) |
ConfigErrorconfig.js | (code, message) | alwaysPermanent | config/* | (no prose comment in source) |
ContentCredentialsErrorcontent-credentials.js | (code, message) | alwaysPermanent | cac-implicit-label/* | (no prose comment in source) |
ContentDigestErrorcontent-digest.js | (code, message) | alwaysPermanent | content-digest/* | (no prose comment in source) |
CookieJarErrorhttp-client-cookie-jar.js | (code, message) | alwaysPermanent | none harvested | (no prose comment in source) |
CorsErrormiddleware/cors.js | (code, message) | alwaysPermanent | cors/* | (no prose comment in source) |
CoseErrorcose.js | (code, message) | alwaysPermanent | cose/* | (no prose comment in source) |
CraReportErrorcra-report.js | (code, message) | alwaysPermanent | cra-report/* | (no prose comment in source) |
CrdtErrorcrdt.js | (code, message) | alwaysPermanent | crdt/* | (no prose comment in source) |
CryptoFieldErrorcrypto-field.js | (code, message) | alwaysPermanent | crypto-field/* | (no prose comment in source) |
CryptoFieldRateErrorcrypto-field.js | (code, message) | alwaysPermanent | crypto-field/* | Typed refusal raised when a (actor, table, column) tuple exceeds the opt-in unseal-failure rate cap and is in cooldown. alwaysPermanent — the caller does not retry; the cooldown is a deliberate, time-bounded circuit-breaker, not a transient backend hiccup. |
CspErrorcsp.js | (code, message) | alwaysPermanent | csp/* | (no prose comment in source) |
CspNonceErrormiddleware/csp-nonce.js | (code, message) | alwaysPermanent | csp-nonce/* | (no prose comment in source) |
CsvErrorcsv.js | (code, message) | alwaysPermanent | csv/* | (no prose comment in source) |
CwtErrorcwt.js | (code, message) | alwaysPermanent | cwt/* | (no prose comment in source) |
DailyByteQuotaErrormiddleware/daily-byte-quota.js | (code, message) | alwaysPermanent | daily-byte-quota/* | (no prose comment in source) |
DaneErrornetwork-dane.js | (code, message) | alwaysPermanent | dane/* | (no prose comment in source) |
DarkPatternsErrordark-patterns.js | (code, message) | alwaysPermanent | none harvested | (no prose comment in source) |
DataActErrordata-act.js | (code, message) | alwaysPermanent | dataact/* | (no prose comment in source) |
DeclareRowPolicyErrordb-declare-row-policy.js | (code, message) | alwaysPermanent | none harvested | (no prose comment in source) |
DeclareViewErrordb-declare-view.js | (code, message) | alwaysPermanent | none harvested | (no prose comment in source) |
DeliverErrormail-send-deliver.js | (code, message, permanent) | default | deliver/* | (no prose comment in source) |
DidErrordid.js | (code, message) | alwaysPermanent | did/* | (no prose comment in source) |
DnsErrornetwork-dns.js | (code, message, permanent) | default | dns/* | (no prose comment in source) |
DnssecErrornetwork-dnssec.js | (code, message) | alwaysPermanent | dnssec/* | (no prose comment in source) |
DrRunbookErrordr-runbook.js | (code, message) | alwaysPermanent | dr-runbook/* | (no prose comment in source) |
DsaErrorframework-error.js | (code, message) | alwaysPermanent | dsa/* | DsaError covers b.dsa config-time misuse (EU Digital Services Act, Reg 2022/2065): malformed noticeAndAction / statementOfReasons / transparencyReport opts, an unknown notice-type / decision / redress / metric key, a statement of reasons with neither or both grounds, an out-of-order reporting period. Permanent — operator-supplied record shape. |
DsrErrordsr.js | (code, message) | alwaysPermanent | dsr/* | (no prose comment in source) |
DualControlErrordual-control.js | (code, message) | alwaysPermanent | none harvested | (no prose comment in source) |
EarlyHintsErrorearly-hints.js | (code, message) | alwaysPermanent | early-hints/* | (no prose comment in source) |
EatErroreat.js | (code, message) | alwaysPermanent | eat/* | (no prose comment in source) |
Fapi2Errorfapi2.js | (code, message) | alwaysPermanent | fapi-2.0/* | (no prose comment in source) |
FdxErrorfdx.js | (code, message) | alwaysPermanent | none harvested | (no prose comment in source) |
FedcmErrorfedcm.js | (code, message) | alwaysPermanent | fedcm/* | (no prose comment in source) |
FidoMds3Errorframework-error.js | (code, message) | alwaysPermanent | fido-mds3/* | FidoMds3Error — b.auth.fidoMds3 (lib/auth/fido-mds3.js). FIDO MDS3 metadata BLOB verification + AAGUID lookup violations: BLOB fetch failure (non-2xx, oversize, network), JWS shape mismatch, certificate chain validation failure against the FIDO Alliance MDS3 root, signature verification failure, payload schema violation (missing entries / nextUpdate / no), nextUpdate parse failure, AAGUID lookup against an authenticator carrying a REVOKED / USER_KEY_PHYSICAL_COMPROMISE / USER_KEY_REMOTE_COMPROMISE status report. alwaysPermanent — every case is configuration / network / signing-shape errors that retry alone won't recover. |
FileTypeErrorfile-type.js | (code, message) | alwaysPermanent | none harvested | (no prose comment in source) |
FlagErrorflag-cache.js | (code, message) | alwaysPermanent | flag/* | (no prose comment in source) |
FlagErrorflag-evaluation-context.js | (code, message) | alwaysPermanent | flag/* | (no prose comment in source) |
FlagErrorflag-providers.js | (code, message) | alwaysPermanent | flag/* | (no prose comment in source) |
FlagErrorflag-targeting.js | (code, message) | alwaysPermanent | flag/* | (no prose comment in source) |
FlagErrorflag.js | (code, message) | alwaysPermanent | flag/* | (no prose comment in source) |
FlagErrormiddleware/flag-context.js | (code, message) | alwaysPermanent | flag/* | (no prose comment in source) |
FrontierProtocolErrorai-frontier-protocol.js | (code, message) | alwaysPermanent | frontier/* | (no prose comment in source) |
FsmErrorfsm.js | (code, message) | alwaysPermanent | fsm/* | (no prose comment in source) |
FuzzyErrorcompliance-sanctions-fuzzy.js | (code, message) | alwaysPermanent | fuzzy/* | (no prose comment in source) |
GdprRopaErrorgdpr-ropa.js | (code, message) | alwaysPermanent | gdpr-ropa/* | (no prose comment in source) |
HalErrorhal.js | (code, message) | alwaysPermanent | hal/* | (no prose comment in source) |
HealthErrormiddleware/health.js | (code, message) | alwaysPermanent | health/* | (no prose comment in source) |
HeartbeatErrornetwork-heartbeat.js | (code, message) | alwaysPermanent | heartbeat/* | (no prose comment in source) |
HoneytokenErrorhoneytoken.js | (code, message) | alwaysPermanent | honeytoken/* | (no prose comment in source) |
HostAllowlistErrormiddleware/host-allowlist.js | (code, message) | alwaysPermanent | host-allowlist/* | (no prose comment in source) |
IabMspaErroriab-mspa.js | (code, message) | alwaysPermanent | none harvested | (no prose comment in source) |
IabTcfErroriab-tcf.js | (code, message) | alwaysPermanent | none harvested | (no prose comment in source) |
IdempotencyErrorframework-error.js | (code, message) | alwaysPermanent | idempotency/* | IdempotencyError — b.middleware.idempotencyKey (lib/middleware/ idempotency-key.js). draft-ietf-httpapi-idempotency-key middleware violations: bad opts at create (missing store, bad ttl, bad methods list), bad idempotency key shape (non-string, too long, control chars), store-backend transport errors that exhausted retries. alwaysPermanent — every operator-facing failure is config-shape; transient store-backend failures route through audit signals so they don't escape as exceptions to the middleware caller. |
IdempotencyErrormiddleware/idempotency-key.js | (code, message) | alwaysPermanent | idempotency/* | (no prose comment in source) |
ImportmapErrorimportmap-integrity.js | (code, message) | alwaysPermanent | importmap/* | (no prose comment in source) |
InboxErrorinbox.js | (code, message) | alwaysPermanent | inbox/* | (no prose comment in source) |
IncidentReportErrorincident-report.js | (code, message) | alwaysPermanent | incident-report/* | (no prose comment in source) |
IniSafeErrorparsers/safe-ini.js | (code, message) | alwaysPermanent | none harvested | (no prose comment in source) |
JoseJweExperimentalErrorjose-jwe-experimental.js | (code, message) | alwaysPermanent | jose-jwe-exp/* | (no prose comment in source) |
JsonApiErrorjsonapi.js | (code, message) | alwaysPermanent | json-api/* | (no prose comment in source) |
JsonMergePatchErrorjson-merge-patch.js | (code, message) | alwaysPermanent | json-merge-patch/* | (no prose comment in source) |
JsonPatchErrorjson-patch.js | (code, message) | alwaysPermanent | json-patch/* | (no prose comment in source) |
JsonPathErrorjson-path.js | (code, message) | alwaysPermanent | json-path/* | (no prose comment in source) |
JsonPointerErrorjson-pointer.js | (code, message) | alwaysPermanent | json-pointer/* | (no prose comment in source) |
JsonSchemaErrorjson-schema.js | (code, message) | alwaysPermanent | json-schema/* | (no prose comment in source) |
JtdErrorjtd.js | (code, message) | alwaysPermanent | jtd/* | (no prose comment in source) |
JwkErrorjwk.js | (code, message) | alwaysPermanent | jwk/* | (no prose comment in source) |
LinkHeaderErrorlink-header.js | (code, message) | alwaysPermanent | link-header/* | (no prose comment in source) |
LroErrorlro.js | (code, message) | alwaysPermanent | lro/* | (no prose comment in source) |
MdocErrormdoc.js | (code, message) | alwaysPermanent | mdoc/* | (no prose comment in source) |
MetricsErrormetrics.js | (code, message) | alwaysPermanent | metrics/*, metrics-shadow/*, metrics-snapshot/* | (no prose comment in source) |
MoneyErrormoney.js | (code, message) | alwaysPermanent | money/* | (no prose comment in source) |
MyErrorframework-error.js | (code, message, permanent) | default | none harvested | defineClass — factory for the standard FrameworkError-subclass shape every per-domain error followed by hand. Variants the factory covers: |
MyErrorframework-error.js | (code, message, permanent, statusCode) | withStatusCode | none harvested | defineClass — factory for the standard FrameworkError-subclass shape every per-domain error followed by hand. Variants the factory covers: defineClass("MyError") constructor: (code, message, permanent) fields: name, permanent, isMyError |
MyErrorframework-error.js | (code, message) | alwaysPermanent | none harvested | defineClass — factory for the standard FrameworkError-subclass shape every per-domain error followed by hand. Variants the factory covers: defineClass("MyError") constructor: (code, message, permanent) fields: name, permanent, isMyError defineClass("MyError", { withStatusCode: true }) constructor: (code, message, permanent, statusCode) fields: + statusCode (HTTP-shaped operational errors) |
MyErrorframework-error.js | (code, message, cause) | withCause | none harvested | defineClass — factory for the standard FrameworkError-subclass shape every per-domain error followed by hand. Variants the factory covers: defineClass("MyError") constructor: (code, message, permanent) fields: name, permanent, isMyError defineClass("MyError", { withStatusCode: true }) constructor: (code, message, permanent, statusCode) fields: + statusCode (HTTP-shaped operational errors) defineClass("MyError", { alwaysPermanent: true }) constructor: (code, message) fields: permanent always true (auth failures, validation) |
NetworkAllowlistErrormiddleware/network-allowlist.js | (code, message) | alwaysPermanent | none harvested | (no prose comment in source) |
NetworkErrornetwork.js | (code, message) | alwaysPermanent | ntp/*, socket/* | (no prose comment in source) |
NetworkTlsErrornetwork-tls.js | (code, message, permanent) | default | network-tls/*, tls/* | (no prose comment in source) |
Nis2ReportErrornis2-report.js | (code, message) | alwaysPermanent | nis2-report/* | (no prose comment in source) |
NoCacheErrormiddleware/no-cache.js | (code, message) | alwaysPermanent | no-cache/* | (no prose comment in source) |
NonceStoreErrornonce-store.js | (code, message, permanent) | default | none harvested | (no prose comment in source) |
NtpCheckErrorntp-check.js | (code, message) | alwaysPermanent | none harvested | Config-time misuse (a bad opts.port) throws a typed, permanent error so an operator catches the typo at boot rather than as a Promise rejection. |
NtsErrornetwork-nts.js | (code, message, permanent) | default | nts/* | (no prose comment in source) |
OAuthErrorauth/oauth.js | (code, message) | alwaysPermanent | auth-oauth/* | (no prose comment in source) |
OpenApiErrormiddleware/openapi-serve.js | (code, message) | alwaysPermanent | openapi/* | (no prose comment in source) |
OpenApiErroropenapi-paths-builder.js | (code, message) | alwaysPermanent | openapi/* | (no prose comment in source) |
OpenApiErroropenapi-schema-walk.js | (code, message) | alwaysPermanent | openapi/* | (no prose comment in source) |
OpenApiErroropenapi-security.js | (code, message) | alwaysPermanent | openapi/* | (no prose comment in source) |
OpenApiErroropenapi-yaml.js | (code, message) | alwaysPermanent | openapi/* | (no prose comment in source) |
OpenApiErroropenapi.js | (code, message) | alwaysPermanent | openapi/* | (no prose comment in source) |
OprfErrorcrypto-oprf.js | (code, message) | alwaysPermanent | oprf/* | (no prose comment in source) |
OtelExportErrorotel-export.js | (code, message, permanent) | default | otel-export/* | (no prose comment in source) |
OtlpExporterErrorobservability-otlp-exporter.js | (code, message) | alwaysPermanent | otlp/* | (no prose comment in source) |
OutboxErroroutbox.js | (code, message) | alwaysPermanent | outbox/* | (no prose comment in source) |
PaginationErrorpagination.js | (code, message) | alwaysPermanent | pagination/* | (no prose comment in source) |
PiplErrorframework-error.js | (code, message) | alwaysPermanent | pipl/* | PiplError covers b.pipl config-time misuse (China PIPL cross-border transfer): a malformed sccFilingAssessment / securityAssessmentCertificate opts object, an unknown legalBasis / riskRating enum, an empty required array, a bad recordedAt clock, or a malformed injected audit sink. Permanent — operator configuration, not transient. |
PqcAgentErrorpqc-agent.js | (code, message) | alwaysPermanent | pqcagent/* | (no prose comment in source) |
PqcErrorpqc-software.js | (code, message) | alwaysPermanent | pqc-software/* | (no prose comment in source) |
PrivacyErrorframework-error.js | (code, message) | alwaysPermanent | privacy/* | PrivacyError covers b.privacy config-time misuse: a malformed vendorReview opts object, a non-boolean clause attestation, or an unknown clause key. Permanent — operator configuration, not transient. |
PrivacyPassErrorprivacy-pass.js | (code, message) | alwaysPermanent | privacy-pass/* | (no prose comment in source) |
ProblemDetailsErrorframework-error.js | (code, message) | alwaysPermanent | problem-details/* | ProblemDetailsError — b.problemDetails (lib/problem-details.js). RFC 9457 Problem Details for HTTP APIs builder + validator violations: bad opts at create/respond/validate, type/title/status/detail/ instance shape mismatches, reserved-field collision in extensions, prototype-pollution-shaped extension keys, bad response object at respond(), bad inbound document shape. alwaysPermanent — every case is operator-shape or wire-shape errors that retry will not recover. |
ProblemDetailsErrorproblem-details.js | (code, message) | alwaysPermanent | problem-details/* | (no prose comment in source) |
ProcessSpawnErrorprocess-spawn.js | (code, message) | alwaysPermanent | process-spawn/* | (no prose comment in source) |
PromisePoolErrorpromise-pool.js | (code, message) | alwaysPermanent | promise-pool/* | (no prose comment in source) |
ProtocolDispatcherErrorprotocol-dispatcher.js | (code, message, permanent, statusCode) | withStatusCode | protocol-dispatcher/* | Default error class — operators / test fixtures that don't want to supply their own get this generic shape with the same code namespace. |
ProxyErrornetwork-proxy.js | (code, message, permanent) | default | proxy/* | (no prose comment in source) |
PublicSuffixErrorframework-error.js | (code, message) | alwaysPermanent | none harvested | PublicSuffixError — b.publicSuffix (lib/public-suffix.js). Bad domain input at lookup time (non-string, empty, overlong, control- byte-bearing, IDN-normalization failure) and missing-vendored-data at module-init are both alwaysPermanent — every case is operator- shaped (caller passed garbage) or packaging-shaped (vendored .dat missing). Codes: `public-suffix/invalid-domain`, `public-suffix/not-loaded`. |
PubsubErrorpubsub-cluster.js | (code, message, permanent) | default | none harvested | (no prose comment in source) |
PubsubErrorpubsub.js | (code, message, permanent) | default | none harvested | (no prose comment in source) |
RequireBoundKeyErrormiddleware/require-bound-key.js | (code, message) | alwaysPermanent | require-bound-key/* | (no prose comment in source) |
RequireContentTypeErrormiddleware/require-content-type.js | (code, message) | alwaysPermanent | require-content-type/* | (no prose comment in source) |
RequireMethodsErrormiddleware/require-methods.js | (code, message) | alwaysPermanent | require-methods/* | (no prose comment in source) |
RequireMtlsErrormiddleware/require-mtls.js | (code, message) | alwaysPermanent | require-mtls/* | (no prose comment in source) |
RequireTlsErrormail-require-tls.js | (code, message) | alwaysPermanent | mail-require-tls/* | (no prose comment in source) |
ResolverErrornetwork-dns-resolver.js | (code, message) | alwaysPermanent | resolver/* | (no prose comment in source) |
ResourceAccessLockErrorresource-access-lock.js | (code, message) | alwaysPermanent | resource-access-lock/* | (no prose comment in source) |
RestoreBundleErrorrestore-bundle.js | (code, message) | alwaysPermanent | restore-bundle/* | (no prose comment in source) |
RestoreRollbackErrorrestore-rollback.js | (code, message) | alwaysPermanent | restore-rollback/* | (no prose comment in source) |
RetentionErrorretention.js | (code, message) | alwaysPermanent | retention/* | (no prose comment in source) |
SafeArchiveErrorsafe-archive.js | (code, message) | alwaysPermanent | safe-archive/* | (no prose comment in source) |
SafeDecompressErrorsafe-decompress.js | (code, message) | alwaysPermanent | safe-decompress/* | (no prose comment in source) |
SafeDnsErrorsafe-dns.js | (code, message) | alwaysPermanent | safe-dns/* | (no prose comment in source) |
SafeIcalErrorsafe-ical.js | (code, message) | alwaysPermanent | safe-ical/* | (no prose comment in source) |
SafeIcapErrorsafe-icap.js | (code, message) | alwaysPermanent | safe-icap/* | (no prose comment in source) |
SafeJsonPathErrorsafe-jsonpath.js | (code, message) | alwaysPermanent | none harvested | SafeJsonPathError — alwaysPermanent because every code path is a caller-shape error: bad pointer / key / expression / shape. The framework registers the class through defineClass so the unified instanceof FrameworkError check works for callers. |
SafeMimeErrorsafe-mime.js | (code, message) | alwaysPermanent | safe-mime/* | (no prose comment in source) |
SafeMountInfoErrorsafe-mount-info.js | (code, message) | alwaysPermanent | safe-mount-info/* | (no prose comment in source) |
SafePathErrorsafe-path.js | (code, message) | alwaysPermanent | none harvested | (no prose comment in source) |
SafeSchemaErrorsafe-schema.js | (code, message) | alwaysPermanent | safe-schema/* | (no prose comment in source) |
SafeSieveErrorsafe-sieve.js | (code, message) | alwaysPermanent | safe-sieve/* | (no prose comment in source) |
SafeSmtpErrorsafe-smtp.js | (code, message) | alwaysPermanent | safe-smtp/* | (no prose comment in source) |
SafeVcardErrorsafe-vcard.js | (code, message) | alwaysPermanent | safe-vcard/* | (no prose comment in source) |
SanctionsErrorcompliance-sanctions.js | (code, message) | alwaysPermanent | sanctions/* | (no prose comment in source) |
SanctionsFetcherErrorcompliance-sanctions-fetcher.js | (code, message) | alwaysPermanent | sanctions-fetcher/* | (no prose comment in source) |
ScittErrorscitt.js | (code, message) | alwaysPermanent | scitt/* | (no prose comment in source) |
SdNotifyErrorsd-notify.js | (code, message) | alwaysPermanent | sd-notify/* | (no prose comment in source) |
SealPemFileErrorvault/seal-pem-file.js | (code, message) | alwaysPermanent | seal-pem-file/* | (no prose comment in source) |
SecCyberErrorsec-cyber.js | (code, message) | alwaysPermanent | none harvested | (no prose comment in source) |
SecurityAssertErrorsecurity-assert.js | (code, message) | alwaysPermanent | ASSERT_FAILED/*, BAD_OPT/* | (no prose comment in source) |
SecurityTxtErrormiddleware/security-txt.js | (code, message) | alwaysPermanent | security-txt/* | (no prose comment in source) |
ServerTimingErrorserver-timing.js | (code, message) | alwaysPermanent | server-timing/* | (no prose comment in source) |
SpanHttpErrormiddleware/span-http-server.js | (code, message) | alwaysPermanent | span-http/* | (no prose comment in source) |
SqlBuilderErrorsql.js | (code, message) | alwaysPermanent | none harvested | Mirrors the in-file error-class convention used by sibling composition modules that subclass FrameworkError directly (safe-sql.js SafeSqlError, cluster-storage.js ClusterStorageError) rather than routing through framework-error.defineClass. An integrator who would rather register it centrally adds |
SrsErrormail-srs.js | (code, message) | alwaysPermanent | srs/* | (no prose comment in source) |
StandardWebhooksErrorstandard-webhooks.js | (code, message) | alwaysPermanent | standard-webhooks/* | (no prose comment in source) |
StatusListErrorauth/status-list.js | (code, message) | alwaysPermanent | status-list/* | (no prose comment in source) |
StreamThrottleErrorstream-throttle.js | (code, message) | alwaysPermanent | stream-throttle/* | (no prose comment in source) |
TarErrorarchive-tar.js | (code, message) | alwaysPermanent | archive-tar/* | (no prose comment in source) |
Tcpa10dlcErrortcpa-10dlc.js | (code, message) | alwaysPermanent | none harvested | (no prose comment in source) |
TenantQuotaErrortenant-quota.js | (code, message) | alwaysPermanent | tenant-quota/* | (no prose comment in source) |
TestHarnessErrortest-harness.js | (code, message) | alwaysPermanent | test-harness/* | (no prose comment in source) |
TimeErrortime.js | (code, message) | alwaysPermanent | time/* | (no prose comment in source) |
TlsRptParseErrormail-deploy.js | (code, message) | alwaysPermanent | mail-tlsrpt/* | (no prose comment in source) |
TlsTrustErrornetwork-tls.js | (code, message) | alwaysPermanent | tls/* | TlsTrustError is a TRUST-verification failure (bad CA/PEM, fingerprint mismatch, OCSP not-good / revoked, CT violation, hostname/PKIX failure, an unreachable OCSP responder). These are ALWAYS permanent: a caller must never silently retry past a trust decision — a transient-looking OCSP-fetch failure is the operator's soft-fail policy to make explicitly, not something a retry loop should paper over. Fail closed. |
TraceLogErrormiddleware/trace-log-correlation.js | (code, message) | alwaysPermanent | trace-log/* | (no prose comment in source) |
TracePropagateErrormiddleware/trace-propagate.js | (code, message) | alwaysPermanent | none harvested | (no prose comment in source) |
TracerErrorobservability-tracer.js | (code, message) | alwaysPermanent | tracer/* | (no prose comment in source) |
TracingErrortracing.js | (code, message) | alwaysPermanent | tracing/* | (no prose comment in source) |
TsaErrortsa.js | (code, message) | alwaysPermanent | tsa/* | (no prose comment in source) |
TsigErrornetwork-tsig.js | (code, message) | alwaysPermanent | tsig/* | (no prose comment in source) |
TusErrormiddleware/tus-upload.js | (code, message) | alwaysPermanent | tus/* | (no prose comment in source) |
UriTemplateErroruri-template.js | (code, message) | alwaysPermanent | uri-template/* | (no prose comment in source) |
VaultAadErrorvault-aad.js | (code, message) | alwaysPermanent | vault-aad/* | (no prose comment in source) |
VaultErrorvault/index.js | (code, message) | alwaysPermanent | vault/* | VaultError — thrown by init() for fatal boot-time conditions (corrupt sealed file, schema mismatch, mode/state conflicts). The CLI / app entry point catches it and exits; lib code never calls process.exit() unilaterally. |
VaultPassphraseErrorvault/passphrase-ops.js | (code, message) | alwaysPermanent | vault-passphrase/* | (no prose comment in source) |
VaultRotateErrorvault/rotate.js | (code, message) | alwaysPermanent | vault-rotate/* | (no prose comment in source) |
VcErrorvc.js | (code, message) | alwaysPermanent | vc/* | (no prose comment in source) |
VendorDataErrorvendor-data.js | (code, message) | alwaysPermanent | vendor-data/* | (no prose comment in source) |
VexErrorvex.js | (code, message) | alwaysPermanent | vex/* | (no prose comment in source) |
WebAppManifestErrormiddleware/web-app-manifest.js | (code, message) | alwaysPermanent | manifest/* | (no prose comment in source) |
WebPushErrorweb-push-vapid.js | (code, message) | alwaysPermanent | web-push/* | (no prose comment in source) |
WebSocketChannelsErrorwebsocket-channels.js | (code, message, permanent) | default | none harvested | (no prose comment in source) |
WormErrorworm.js | (code, message) | alwaysPermanent | worm/* | (no prose comment in source) |
WsClientErrorws-client.js | (code, message, permanent) | default | ws-client/* | permanent is DERIVED per-error from the code (+ status) at every construction — so err.permanent is a usable terminal/transient signal for a consumer's reconnect loop, not a blanket sentinel. Constructor: (code, message, status). |
XWingErrorcrypto-xwing.js | (code, message) | alwaysPermanent | xwing/* | (no prose comment in source) |
XmlC14nErrorxml-c14n.js | (code, message) | alwaysPermanent | none harvested | (no prose comment in source) |
Protocol #
| Class | Constructor | Flags | Code namespaces | Description |
|---|---|---|---|---|
A2aErrorframework-error.js | (code, message) | alwaysPermanent | none harvested | A2aError covers A2A (Agent-to-Agent) protocol violations: signed- agent-card signature mismatch, expired card, unknown card id, malformed card shape, signature-algorithm allowlist drift. Permanent. |
A2aTasksErrora2a-tasks.js | (code, message) | alwaysPermanent | a2a-tasks/* | A2aTasksError is the per-call error class — separate from A2aError (which exists for the card-signing primitives) so operators can catch task-shape errors distinctly. |
AiInputErrorframework-error.js | (code, message) | alwaysPermanent | none harvested | AiInputError covers prompt-injection classifier violations: malformed input shape, classifier-result-shape errors, oversized input bypass. Permanent — caller-shape errors. |
DlpErrorframework-error.js | (code, message) | alwaysPermanent | redact-dlp/* | DlpError — outbound DLP scanner refusal raised by b.redact.installOutboundDlp's interceptors when the classifier verdict is "refuse". Permanent; the request body must be operator-corrected before re-attempt rather than retried as-is. |
GraphqlFederationErrorframework-error.js | (code, message) | alwaysPermanent | none harvested | GraphqlFederationError covers _service.sdl trust-boundary violations: missing or malformed router-token, replay (nonce already seen), unauthorized SDL probe. Permanent. |
McpErrorframework-error.js | (code, message) | alwaysPermanent | mcp/* | McpError covers Model Context Protocol server-side violations: unauthenticated tool/resource invocations (CVE-2026-33032 nginx-ui auth-bypass class), confused-deputy via static client IDs + dynamic client registration (CVE-2025-6514 mcp-remote OAuth RCE class), consent-cookie leakage, malformed Authorization header, tool/resource name path traversal. Permanent — protocol-shape errors. |
Storage #
| Class | Constructor | Flags | Code namespaces | Description |
|---|---|---|---|---|
DbErrordb.js | (code, message) | alwaysPermanent | db/* | (no prose comment in source) |
DbFileLifecycleErrordb-file-lifecycle.js | (code, message) | alwaysPermanent | db-file-lifecycle/* | (no prose comment in source) |
DbQueryErrorframework-error.js | (code, message, permanent) | default | db-query/* | DbQueryError covers the local-SQLite query-builder refusal paths (residency write gates, malformed-call shapes). Refusals pass the permanent flag explicitly — a residency mismatch never becomes valid on retry, while the class stays open for transient codes later. |
DbRoleForErrormiddleware/db-role-for.js | (code, message) | alwaysPermanent | none harvested | (no prose comment in source) |
DbscErrordbsc.js | (code, message) | alwaysPermanent | dbsc/* | (no prose comment in source) |
ExternalDbErrorframework-error.js | (code, message, permanent) | default | none harvested | (no prose comment in source) |
ExternalDbMigrateErrorexternal-db-migrate.js | (code, message) | alwaysPermanent | none harvested | (no prose comment in source) |
LocalDbThinErrorframework-error.js | (code, message) | alwaysPermanent | localdb-thin/* | LocalDbThinError — b.localDb.thin lightweight node:sqlite wrapper (lib/local-db-thin.js). Bad opts at create, node:sqlite unavailable on the host Node build, integrity_check failure under recovery: "refuse", recovery-rename I/O failure, post-close handle reuse, bad SQL passed to prepare/run/query. alwaysPermanent — every case is caller-shape misuse or an irrecoverable on-disk condition. |
ObjectStoreErrorframework-error.js | (code, message, permanent, statusCode) | withStatusCode | objectstore/* | (no prose comment in source) |
RedisErrorframework-error.js | (code, message, permanent) | default | none harvested | RedisError covers transport (CONNECT/CONNECT_TIMEOUT/SOCKET/WRITE), protocol parsing (PROTOCOL/BAD_URL/BAD_OPTS), command-level (REDIS_REPLY/COMMAND_TIMEOUT), and lifecycle (CLOSED/RECONNECT_GAVE_UP). Transient by default — operators wrap calls in retry/breaker. Bad-opts and bad-URL paths surface as alwaysPermanent code names so retry sees them and skips immediately rather than hammering a misconfig. |
StorageErrorframework-error.js | (code, message, permanent) | default | none harvested | (no prose comment in source) |
Transport #
| Class | Constructor | Flags | Code namespaces | Description |
|---|---|---|---|---|
MailAgentErrormail-agent.js | (code, message) | alwaysPermanent | mail-agent/* | (no prose comment in source) |
MailArfErrorframework-error.js | (code, message) | alwaysPermanent | mailarf/* | MailArfError covers RFC 5965 Abuse Reporting Format ingest failures: missing required Feedback-Type / User-Agent fields, malformed multipart/report, message/feedback-report MIME-type mismatch, parse errors. Permanent — the report shape is operator-supplied input. |
MailAuthErrorframework-error.js | (code, message) | alwaysPermanent | arc-sign/*, mail-auth/* | MailAuthError covers SPF / DKIM-verify / DMARC / ARC misuse: bad record shape, fetch failures, missing keys, alignment issues. Permanent — DNS-config / message-shape errors, not transient. |
MailAuthErrormail-arc-sign.js | (code, message) | alwaysPermanent | arc-sign/*, mail-auth/* | (no prose comment in source) |
MailBimiErrorframework-error.js | (code, message) | alwaysPermanent | bimi/* | MailBimiError covers RFC 9091 BIMI VMC / CMC chain validation + Tiny-PS SVG profile violations: VMC fetch failures, X.509 chain validation failures, subjectAltName URI / BIMI domain mismatch, missing BIMI policy OID (1.3.6.1.5.5.7.3.31 mark verification), Tiny-PS SVG profile violations (root, version, baseProfile, scripts, external refs, viewBox, byte cap). Permanent — every case is a brand / certificate / asset shape error. |
MailBounceErrormail-bounce.js | (code, message, permanent, statusCode) | withStatusCode | mail-bounce/* | (no prose comment in source) |
MailCryptoErrormail-crypto-pgp.js | (code, message) | alwaysPermanent | mail-crypto/* | (no prose comment in source) |
MailCryptoErrormail-crypto-smime.js | (code, message) | alwaysPermanent | mail-crypto/* | (no prose comment in source) |
MailCryptoErrormail-crypto.js | (code, message) | alwaysPermanent | mail-crypto/* | Both sub-modules define `MailCryptoError` independently (each via |
MailDavErrormail-dav.js | (code, message) | alwaysPermanent | mail-dav/* | (no prose comment in source) |
MailDeployErrormail-deploy.js | (code, message) | alwaysPermanent | mail-deploy/*, mail-tlsrpt/* | (no prose comment in source) |
MailGreylistErrormail-greylist.js | (code, message) | alwaysPermanent | mail-greylist/* | (no prose comment in source) |
MailHeloErrormail-helo.js | (code, message) | alwaysPermanent | mail-helo/* | (no prose comment in source) |
MailJournalErrormail-journal.js | (code, message) | alwaysPermanent | mail-journal/* | (no prose comment in source) |
MailMdnErrorframework-error.js | (code, message) | alwaysPermanent | none harvested | MailMdnError — b.mailMdn (lib/mail-mdn.js). RFC 3798 / RFC 8098 Message Disposition Notification builder + parser violations: bad opts at build/parse, malformed multipart/report shape, missing required fields (Original-Recipient / Final-Recipient / Disposition), disposition / action-mode / sending-mode token allowlist drift, auto-generation refusal when the inbound message demanded user confirmation (RFC 3798 §2.1) and the operator did not opt in. alwaysPermanent — every case is operator-shape or message-shape errors that retry will not recover. |
MailRblErrormail-rbl.js | (code, message) | alwaysPermanent | mail-rbl/* | (no prose comment in source) |
MailScanErrormail-scan.js | (code, message) | alwaysPermanent | mail-scan/* | (no prose comment in source) |
MailServerImapErrormail-server-imap.js | (code, message) | alwaysPermanent | mail-server-imap/* | (no prose comment in source) |
MailServerJmapErrormail-server-jmap.js | (code, message) | alwaysPermanent | mail-server-jmap/*, urn:ietf:params:jmap:error:/*, urn:ietf:params:jmap:error:invalidArguments/*, urn:ietf:params:jmap:error:invalidResultReference/* | (no prose comment in source) |
MailServerManageSieveErrormail-server-managesieve.js | (code, message) | alwaysPermanent | mail-server-managesieve/* | (no prose comment in source) |
MailServerMxErrormail-server-mx.js | (code, message) | alwaysPermanent | mail-server-mx/* | (no prose comment in source) |
MailServerPop3Errormail-server-pop3.js | (code, message) | alwaysPermanent | mail-server-pop3/* | (no prose comment in source) |
MailServerRateLimitErrormail-server-rate-limit.js | (code, message) | alwaysPermanent | mail-server-rate-limit/* | (no prose comment in source) |
MailServerRegistryErrormail-server-registry.js | (code, message) | alwaysPermanent | mail-server-registry/* | (no prose comment in source) |
MailServerSubmissionErrormail-server-submission.js | (code, message) | alwaysPermanent | mail-server-submission/* | (no prose comment in source) |
MailServerTlsErrormail-server-tls.js | (code, message) | alwaysPermanent | mail-server-tls/* | (no prose comment in source) |
MailSieveErrormail-sieve.js | (code, message) | alwaysPermanent | mail-sieve/* | (no prose comment in source) |
MailSpamScoreErrormail-spam-score.js | (code, message) | alwaysPermanent | mail-spam-score/* | (no prose comment in source) |
MailStoreErrormail-store.js | (code, message) | alwaysPermanent | mail-store/* | (no prose comment in source) |
MailUnsubscribeErrorframework-error.js | (code, message) | alwaysPermanent | mailunsubscribe/* | MailUnsubscribeError — b.mail.unsubscribe (lib/mail-unsubscribe.js). RFC 8058 / RFC 2369 / RFC 2919 List-* header builder violations: non-https URL in url/help/archive, non-mailto in mailto/owner, invalid list-id shape per RFC 2919 §3, control bytes / over-length header values. alwaysPermanent — every case is operator-misconfig at config-time the framework refuses to coerce. |
SmtpPolicyErrorframework-error.js | (code, message) | alwaysPermanent | smtp/* | SmtpPolicyError covers MTA-STS / DANE / TLS-RPT misuse: bad-policy shape, fetch failures, TLSA-record format errors, missing records. Permanent — these are policy / DNS configuration errors, not transient. |
SseErrorframework-error.js | (code, message) | alwaysPermanent | none harvested | SseError covers Server-Sent Events stream-shape violations: newline or CR or NUL injection in event:/id:/data: fields (CVE-2026-33128 h3, CVE-2026-29085 Hono, CVE-2026-44217 sse-channel — newline in any of the three fields enables event-spoofing, data-injection, or Last-Event-ID reconnect corruption), control-char injection in retry: numeric, oversized field caps, attempts to write after stream close. Permanent — these are caller-shape errors. |
Construction sites that pass a non-literal first argument (template strings, variables) are intentionally not harvested — the catalog only records statically-resolvable code namespaces. Per-primitive wiki pages document the full code surface.
Last updated 2026-08-08T16:39:49.652Z by seeder.