Skip to content

@eristack/ai-knowledge

Eristack knowledge pack for AI agents: recommend packages first, load the right Intent skills, and keep catalog facts in sync

http-errors

29 linesSource

Unified 409 JSON error envelope: CONFLICT_VERSION, POLICY_DENIED, BUSINESS_POLICY_DENIED, STALE_EPOCH. Backseat jsonError/versionConflict; Express mapDomainError. Distinct document version vs epoch cache.

HTTP error envelope

Read knowledge/http-errors.md only.

Quick rules

  • Body shape: { error: { code, message, details? } }.
  • 400 INVALID_TIMESTAMP — TimestampParseError; 400 VALIDATION_ERROR — Zod; 409 CONFLICT_UNIQUE — Postgres 23505.
  • 409 branches: CONFLICT_VERSION (merge UI), BUSINESS_POLICY_DENIED / POLICY_DENIED (toast reason), STALE_EPOCH (refetch list).
  • Backseat: jsonError, versionConflict, BackseatVersionConflictError.
  • Express/Nest: createMapDomainError / createAsyncHandler from @eristack/backseat/express; createErrorCatalog for app codes + client disposition; Nest createDomainErrorExceptionFilter.
  • Document version ≠ @eristack/epoch — use both where needed.

Pair with #optimistic-document-version for PATCH handlers.