diff --git a/.changeset/unified-test-evidence.md b/.changeset/unified-test-evidence.md
new file mode 100644
index 000000000..1471f0326
--- /dev/null
+++ b/.changeset/unified-test-evidence.md
@@ -0,0 +1,6 @@
+---
+"@croco/testing": minor
+"@croco/problems-core": patch
+---
+
+Publish a runner-neutral `croco.test-evidence/v1` contract, JSON schema, Vitest and Playwright reporters, fidelity validation, flaky-attempt preservation, redaction, and deterministic JSON/Markdown bundles with explicit missing-artifact failures.
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 151e2ea2e..571efb742 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -171,6 +171,7 @@ jobs:
id: verification_profile
shell: bash
env:
+ CROCO_TEST_EVIDENCE_DIR: ${{ github.workspace }}/ci-reports/test-evidence/records
VERIFICATION_BASE: ${{ needs.changes.outputs.base }}
VERIFICATION_PROFILE: ${{ needs.changes.outputs.profile }}
run: |
@@ -199,6 +200,48 @@ jobs:
echo "Verification report was not generated." >> "$GITHUB_STEP_SUMMARY"
fi
+ - name: Ensure native Vitest evidence
+ if: always()
+ shell: bash
+ env:
+ CROCO_TEST_EVIDENCE_DIR: ${{ github.workspace }}/ci-reports/test-evidence/records
+ run: |
+ if ! find ci-reports/test-evidence/records -type f -name 'vitest-*.json' -print -quit 2>/dev/null | grep -q .; then
+ pnpm --filter @croco/testing test
+ fi
+
+ - name: Aggregate executable test evidence
+ if: always()
+ shell: bash
+ env:
+ VERIFICATION_PROFILE: ${{ needs.changes.outputs.profile }}
+ run: |
+ report="ci-reports/verification/${VERIFICATION_PROFILE}/spine-evidence.json"
+ if [ "$VERIFICATION_PROFILE" = "spine" ]; then
+ report="ci-reports/release/spine-evidence.json"
+ fi
+ evidence_args=(--input "$report")
+ vitest_record_count=0
+ if [ -d ci-reports/test-evidence/records ]; then
+ while IFS= read -r evidence_record; do
+ evidence_args+=(--input "$evidence_record")
+ if [[ "$evidence_record" == */vitest-*.json ]]; then
+ vitest_record_count=$((vitest_record_count + 1))
+ fi
+ done < <(find ci-reports/test-evidence/records -type f -name '*.json' -print | sort)
+ fi
+ if [ "$vitest_record_count" -eq 0 ]; then
+ evidence_args+=(--input ci-reports/test-evidence/records/required-vitest-record.json)
+ fi
+ evidence_status=0
+ node --experimental-strip-types scripts/test-evidence-bundle.mts "${evidence_args[@]}" || evidence_status=$?
+ if [ -f ci-reports/test-evidence/summary.md ]; then
+ cat ci-reports/test-evidence/summary.md >> "$GITHUB_STEP_SUMMARY"
+ else
+ echo "Test evidence summary was not generated." >> "$GITHUB_STEP_SUMMARY"
+ fi
+ exit "$evidence_status"
+
- name: Upload verification evidence
if: always()
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
@@ -207,6 +250,7 @@ jobs:
path: |
ci-reports/verification
ci-reports/release
+ ci-reports/test-evidence
include-hidden-files: true
if-no-files-found: warn
diff --git a/docs/problem-code-registry.json b/docs/problem-code-registry.json
index 35abe6404..67f9092a7 100644
--- a/docs/problem-code-registry.json
+++ b/docs/problem-code-registry.json
@@ -1,6 +1,6 @@
{
"version": "croco.problem-code-registry.v1",
- "problemCount": 560,
+ "problemCount": 562,
"problems": [
{
"code": "ACCESS_DENIED",
@@ -4382,6 +4382,66 @@
}
]
},
+ {
+ "code": "CROCO_TEST_EVIDENCE_CONTRACT_INVALID",
+ "category": "ValidationError",
+ "status": 422,
+ "title": "Validation Error",
+ "cookbookPath": "/reference/problem-recovery-cookbook/#croco-test-evidence-contract-invalid",
+ "recovery": {
+ "cause": "The request or generated contract failed schema or semantic validation.",
+ "userAction": "Fix the invalid fields and retry with schema-conformant input.",
+ "operatorAction": "Inspect schema diagnostics, generated contracts, and validation metadata.",
+ "retryability": "not-retryable",
+ "redactionPolicy": "public",
+ "telemetry": {
+ "eventName": "croco.problem.info",
+ "severity": "info",
+ "attributes": ["problem.code", "problem.category", "problem.status"]
+ }
+ },
+ "lifecycle": {
+ "status": "active"
+ },
+ "sources": [
+ {
+ "file": "packages/testing/src/libs/test-evidence.mts",
+ "line": 159,
+ "column": 5,
+ "kind": "problem-constructor"
+ }
+ ]
+ },
+ {
+ "code": "CROCO_TEST_EVIDENCE_FIDELITY_UNSATISFIED",
+ "category": "ValidationError",
+ "status": 422,
+ "title": "Validation Error",
+ "cookbookPath": "/reference/problem-recovery-cookbook/#croco-test-evidence-fidelity-unsatisfied",
+ "recovery": {
+ "cause": "The request or generated contract failed schema or semantic validation.",
+ "userAction": "Fix the invalid fields and retry with schema-conformant input.",
+ "operatorAction": "Inspect schema diagnostics, generated contracts, and validation metadata.",
+ "retryability": "not-retryable",
+ "redactionPolicy": "public",
+ "telemetry": {
+ "eventName": "croco.problem.info",
+ "severity": "info",
+ "attributes": ["problem.code", "problem.category", "problem.status"]
+ }
+ },
+ "lifecycle": {
+ "status": "active"
+ },
+ "sources": [
+ {
+ "file": "packages/testing/src/libs/test-evidence.mts",
+ "line": 173,
+ "column": 5,
+ "kind": "problem-constructor"
+ }
+ ]
+ },
{
"code": "dataloader-core/batch-result-length-mismatch",
"category": "InternalServerError",
diff --git a/package.json b/package.json
index 5bd9a98c2..d1253c6b0 100644
--- a/package.json
+++ b/package.json
@@ -29,6 +29,7 @@
"release": "pnpm build && changeset publish",
"test": "turbo test",
"test:release-gates": "node --experimental-strip-types scripts/verification-command.mts --id release-gate-tests",
+ "test-evidence:bundle": "node --experimental-strip-types scripts/test-evidence-bundle.mts",
"test:coverage:core": "pnpm --filter @croco/problems-core --filter @croco/telemetry-api --filter @croco/tenant-core --filter @croco/dataloader-core --filter @croco/ratelimit-core --filter @croco/llm-core --filter @croco/storage-core --filter @croco/architecture-policy build && node --experimental-strip-types scripts/verification-command.mts --id core-coverage",
"test:coverage:core:warning": "node --experimental-strip-types scripts/verification-command.mts --id core-coverage-warning",
"typecheck": "turbo typecheck",
diff --git a/packages/docs/src/content/docs/api/problems-core/src/classes/Problem.md b/packages/docs/src/content/docs/api/problems-core/src/classes/Problem.md
index a4cd00242..9d19d221b 100644
--- a/packages/docs/src/content/docs/api/problems-core/src/classes/Problem.md
+++ b/packages/docs/src/content/docs/api/problems-core/src/classes/Problem.md
@@ -382,6 +382,8 @@ RFC 7807 Problem Details를 표현하는 기본 추상 에러 클래스입니다
- [`TelemetryForceFlushUnsupportedProblem`](/api/telemetry-sdk-node/src/classes/telemetryforceflushunsupportedproblem/)
- [`UnsupportedTelemetrySignalProblem`](/api/telemetry-sdk-node/src/classes/unsupportedtelemetrysignalproblem/)
- [`TelemetryAutoInstrumentationProblem`](/api/telemetry-sdk-node/src/classes/telemetryautoinstrumentationproblem/)
+- [`TestEvidenceContractError`](/api/testing/src/classes/testevidencecontracterror/)
+- [`TestEvidenceFidelityError`](/api/testing/src/classes/testevidencefidelityerror/)
- [`TestKernelDisposedProblem`](/api/testing/src/classes/testkerneldisposedproblem/)
- [`TestKernelDisposalProblem`](/api/testing/src/classes/testkerneldisposalproblem/)
- [`TestKernelResourceFidelityProblem`](/api/testing/src/classes/testkernelresourcefidelityproblem/)
diff --git a/packages/docs/src/content/docs/api/problems-core/src/variables/CROCO_PROBLEM_CODE_REGISTRY.md b/packages/docs/src/content/docs/api/problems-core/src/variables/CROCO_PROBLEM_CODE_REGISTRY.md
index 71518334e..f1bd8af7c 100644
--- a/packages/docs/src/content/docs/api/problems-core/src/variables/CROCO_PROBLEM_CODE_REGISTRY.md
+++ b/packages/docs/src/content/docs/api/problems-core/src/variables/CROCO_PROBLEM_CODE_REGISTRY.md
@@ -5,17 +5,17 @@ prev: false
title: "CROCO_PROBLEM_CODE_REGISTRY"
---
-> `const` **CROCO\_PROBLEM\_CODE\_REGISTRY**: `object`
+> `const` **CROCO_PROBLEM_CODE_REGISTRY**: `object`
## Type Declaration
### problemCount
-> `readonly` **problemCount**: `560` = `560`
+> `readonly` **problemCount**: `562` = `562`
### problems
-> `readonly` **problems**: readonly \[\{ `category`: `"Forbidden"`; `code`: `"ACCESS_DENIED"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#access-denied"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The authenticated caller is not allowed to perform the requested action."`; `operatorAction`: `"Review policy, role, tenant, entitlement, and impersonation context."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Request the required permission or choose an allowed action."`; \}; `sources`: readonly \[\{ `column`: `15`; `file`: `"packages/transports-http/src/libs/PipelineRunner.ts"`; `kind`: `"problem-factory"`; `line`: `196`; \}\]; `status`: `403`; `title`: `"Forbidden"`; \}, \{ `category`: `"Forbidden"`; `code`: `"access-core/forbidden"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#access-core-forbidden"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The authenticated caller is not allowed to perform the requested action."`; `operatorAction`: `"Review policy, role, tenant, entitlement, and impersonation context."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Request the required permission or choose an allowed action."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/access-core/src/libs/guards/AccessGuard.ts"`; `kind`: `"problem-constructor"`; `line`: `17`; \}\]; `status`: `403`; `title`: `"Forbidden"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"ADMIN_LIFECYCLE_DEMO_INVARIANT"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#admin-lifecycle-demo-invariant"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/create-croco-app/templates/admin-console/apps/console-web/src/LifecycleAutomationDemo.tsx"`; `kind`: `"problem-constructor"`; `line`: `66`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"NotFound"`; `code`: `"admin-console/user-not-found"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#admin-console-user-not-found"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The requested resource or route-visible record does not exist."`; `operatorAction`: `"Confirm tenant scoping, data retention, and backing-store lookup behavior."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Verify the identifier and refresh the resource list before retrying."`; \}; `sources`: readonly \[\{ `column`: `79`; `file`: `"packages/create-croco-app/templates/admin-console/apps/api-server/src/controllers/adminSchemas.ts"`; `kind`: `"problem-metadata"`; `line`: `20`; \}\]; `status`: `404`; `title`: `"Not Found"`; \}, \{ `category`: `"Forbidden"`; `code`: `"admin-core/credit-operations-permission-denied"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#admin-core-credit-operations-permission-denied"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The authenticated caller is not allowed to perform the requested action."`; `operatorAction`: `"Review policy, role, tenant, entitlement, and impersonation context."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Request the required permission or choose an allowed action."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/create-croco-app/templates/admin-console/apps/api-server/src/controllers/adminSchemas.ts"`; `kind`: `"problem-metadata"`; `line`: `40`; \}\]; `status`: `403`; `title`: `"Forbidden"`; \}, \{ `category`: `"ValidationError"`; `code`: `"admin-core/credit-operations-validation-failed"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#admin-core-credit-operations-validation-failed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request or generated contract failed schema or semantic validation."`; `operatorAction`: `"Inspect schema diagnostics, generated contracts, and validation metadata."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Fix the invalid fields and retry with schema-conformant input."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/admin-core/src/libs/CreditOperations.ts"`; `kind`: `"problem-constructor"`; `line`: `286`; \}\]; `status`: `422`; `title`: `"Validation Error"`; \}, \{ `category`: `"ValidationError"`; `code`: `"admin-core/resource-validation-failed"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#admin-core-resource-validation-failed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request or generated contract failed schema or semantic validation."`; `operatorAction`: `"Inspect schema diagnostics, generated contracts, and validation metadata."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Fix the invalid fields and retry with schema-conformant input."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/admin-core/src/libs/AdminResource.ts"`; `kind`: `"problem-constructor"`; `line`: `79`; \}\]; `status`: `422`; `title`: `"Validation Error"`; \}, \{ `category`: `"ValidationError"`; `code`: `"admin-core/webhook-action-validation-failed"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#admin-core-webhook-action-validation-failed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request or generated contract failed schema or semantic validation."`; `operatorAction`: `"Inspect schema diagnostics, generated contracts, and validation metadata."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Fix the invalid fields and retry with schema-conformant input."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/admin-core/src/libs/WebhookOperations.ts"`; `kind`: `"problem-constructor"`; `line`: `187`; \}\]; `status`: `422`; `title`: `"Validation Error"`; \}, \{ `category`: `"ValidationError"`; `code`: `"admin-generated/contract-diagnostics"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#admin-generated-contract-diagnostics"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request or generated contract failed schema or semantic validation."`; `operatorAction`: `"Inspect schema diagnostics, generated contracts, and validation metadata."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Fix the invalid fields and retry with schema-conformant input."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/admin-generated/src/libs/generate.ts"`; `kind`: `"problem-constructor"`; `line`: `55`; \}\]; `status`: `422`; `title`: `"Validation Error"`; \}, \{ `category`: `"NotFound"`; `code`: `"ai-saas/model-not-found"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#ai-saas-model-not-found"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The requested resource or route-visible record does not exist."`; `operatorAction`: `"Confirm tenant scoping, data retention, and backing-store lookup behavior."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Verify the identifier and refresh the resource list before retrying."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/create-croco-app/templates/ai-saas/apps/api-server/src/aiProblems.ts"`; `kind`: `"problem-class"`; `line`: `31`; \}\]; `status`: `404`; `title`: `"Not Found"`; \}, \{ `category`: `"ValidationError"`; `code`: `"ai-saas/model-required"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#ai-saas-model-required"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request or generated contract failed schema or semantic validation."`; `operatorAction`: `"Inspect schema diagnostics, generated contracts, and validation metadata."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Fix the invalid fields and retry with schema-conformant input."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/create-croco-app/templates/ai-saas/apps/api-server/src/aiProblems.ts"`; `kind`: `"problem-class"`; `line`: `22`; \}\]; `status`: `422`; `title`: `"Validation Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"ai-saas/provider-unavailable"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#ai-saas-provider-unavailable"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/create-croco-app/templates/ai-saas/apps/api-server/src/aiProblems.ts"`; `kind`: `"problem-class"`; `line`: `62`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"TooManyRequests"`; `code`: `"ai-saas/quota-exceeded"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#ai-saas-quota-exceeded"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The caller exceeded a rate, quota, or concurrency limit."`; `operatorAction`: `"Check limiter state, quota configuration, and abuse signals."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Wait for the retry window or reduce request volume."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/create-croco-app/templates/ai-saas/apps/api-server/src/aiProblems.ts"`; `kind`: `"problem-class"`; `line`: `40`; \}\]; `status`: `429`; `title`: `"Too Many Requests"`; \}, \{ `category`: `"TooManyRequests"`; `code`: `"ai-saas/rate-limit-exceeded"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#ai-saas-rate-limit-exceeded"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The caller exceeded a rate, quota, or concurrency limit."`; `operatorAction`: `"Check limiter state, quota configuration, and abuse signals."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Wait for the retry window or reduce request volume."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/create-croco-app/templates/ai-saas/apps/api-server/src/aiProblems.ts"`; `kind`: `"problem-class"`; `line`: `53`; \}\]; `status`: `429`; `title`: `"Too Many Requests"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"ai-saas/smoke-failed"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#ai-saas-smoke-failed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/create-croco-app/templates/ai-saas/apps/api-server/src/aiProblems.ts"`; `kind`: `"problem-class"`; `line`: `75`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"NotFound"`; `code`: `"ai-saas/tenant-not-found"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#ai-saas-tenant-not-found"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The requested resource or route-visible record does not exist."`; `operatorAction`: `"Confirm tenant scoping, data retention, and backing-store lookup behavior."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Verify the identifier and refresh the resource list before retrying."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/create-croco-app/templates/ai-saas/apps/api-server/src/aiProblems.ts"`; `kind`: `"problem-class"`; `line`: `13`; \}\]; `status`: `404`; `title`: `"Not Found"`; \}, \{ `category`: `"ValidationError"`; `code`: `"ai-saas/tenant-required"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#ai-saas-tenant-required"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request or generated contract failed schema or semantic validation."`; `operatorAction`: `"Inspect schema diagnostics, generated contracts, and validation metadata."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Fix the invalid fields and retry with schema-conformant input."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/create-croco-app/templates/ai-saas/apps/api-server/src/aiProblems.ts"`; `kind`: `"problem-class"`; `line`: `4`; \}\]; `status`: `422`; `title`: `"Validation Error"`; \}, \{ `category`: `"Conflict"`; `code`: `"ALREADY_MEMBER"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#already-member"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request conflicts with current state or an idempotency constraint."`; `operatorAction`: `"Inspect concurrent writes, idempotency keys, and uniqueness constraints."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Refresh state, resolve the conflict, and retry with the updated intent."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/membership-core/src/libs/problems/MembershipProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `18`; \}\]; `status`: `409`; `title`: `"Conflict"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"analytics-posthog/capture-failed"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#analytics-posthog-capture-failed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/analytics-posthog/src/libs/problems/PostHogAnalyticsProblems.ts"`; `kind`: `"problem-class"`; `line`: `4`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"analytics-posthog/flush-failed"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#analytics-posthog-flush-failed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/analytics-posthog/src/libs/problems/PostHogAnalyticsProblems.ts"`; `kind`: `"problem-class"`; `line`: `19`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"analytics-posthog/readiness-failed"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#analytics-posthog-readiness-failed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/analytics-posthog/src/libs/problems/PostHogAnalyticsProblems.ts"`; `kind`: `"problem-class"`; `line`: `33`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"Unauthorized"`; `code`: `"API_KEY_EXPIRED"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#api-key-expired"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request did not include valid authentication credentials."`; `operatorAction`: `"Check authentication configuration, token issuer, and clock skew."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Sign in again or provide a valid credential."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/auth-core/src/libs/problems/AuthProblems.ts"`; `kind`: `"problem-class"`; `line`: `48`; \}\]; `status`: `401`; `title`: `"Unauthorized"`; \}, \{ `category`: `"NotFound"`; `code`: `"API_KEY_NOT_FOUND"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#api-key-not-found"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The requested resource or route-visible record does not exist."`; `operatorAction`: `"Confirm tenant scoping, data retention, and backing-store lookup behavior."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Verify the identifier and refresh the resource list before retrying."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/auth-core/src/libs/apikey/problems/ApiKeyNotFoundProblem.ts"`; `kind`: `"problem-class"`; `line`: `4`; \}\]; `status`: `404`; `title`: `"Not Found"`; \}, \{ `category`: `"Unauthorized"`; `code`: `"API_KEY_REVOKED"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#api-key-revoked"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request did not include valid authentication credentials."`; `operatorAction`: `"Check authentication configuration, token issuer, and clock skew."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Sign in again or provide a valid credential."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/auth-core/src/libs/problems/AuthProblems.ts"`; `kind`: `"problem-class"`; `line`: `56`; \}\]; `status`: `401`; `title`: `"Unauthorized"`; \}, \{ `category`: `"ValidationError"`; `code`: `"architecture-policy/manifest-json-parse"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#architecture-policy-manifest-json-parse"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request or generated contract failed schema or semantic validation."`; `operatorAction`: `"Inspect schema diagnostics, generated contracts, and validation metadata."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Fix the invalid fields and retry with schema-conformant input."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/architecture-policy/src/index.ts"`; `kind`: `"problem-constructor"`; `line`: `19`; \}\]; `status`: `422`; `title`: `"Validation Error"`; \}, \{ `category`: `"ValidationError"`; `code`: `"architecture-policy/manifest-schema-version"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#architecture-policy-manifest-schema-version"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request or generated contract failed schema or semantic validation."`; `operatorAction`: `"Inspect schema diagnostics, generated contracts, and validation metadata."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Fix the invalid fields and retry with schema-conformant input."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/architecture-policy/src/index.ts"`; `kind`: `"problem-constructor"`; `line`: `30`; \}\]; `status`: `422`; `title`: `"Validation Error"`; \}, \{ `category`: `"ValidationError"`; `code`: `"architecture-policy/manifest-shape"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#architecture-policy-manifest-shape"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request or generated contract failed schema or semantic validation."`; `operatorAction`: `"Inspect schema diagnostics, generated contracts, and validation metadata."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Fix the invalid fields and retry with schema-conformant input."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/architecture-policy/src/index.ts"`; `kind`: `"problem-constructor"`; `line`: `9`; \}\]; `status`: `422`; `title`: `"Validation Error"`; \}, \{ `category`: `"ValidationError"`; `code`: `"architecture-policy/package-json-parse"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#architecture-policy-package-json-parse"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request or generated contract failed schema or semantic validation."`; `operatorAction`: `"Inspect schema diagnostics, generated contracts, and validation metadata."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Fix the invalid fields and retry with schema-conformant input."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/architecture-policy/src/index.ts"`; `kind`: `"problem-constructor"`; `line`: `46`; \}\]; `status`: `422`; `title`: `"Validation Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"audit-core/auditable-decorator-misuse"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#audit-core-auditable-decorator-misuse"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/audit-core/src/libs/problems/AuditableDecoratorProblem.ts"`; `kind`: `"problem-class"`; `line`: `4`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"audit/insert-failed"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#audit-insert-failed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `13`; `file`: `"packages/audit-drizzle/src/libs/DrizzleAuditLogRepository.ts"`; `kind`: `"problem-factory"`; `line`: `137`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"auth-better-auth/authentication-failed"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#auth-better-auth-authentication-failed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/auth-better-auth/src/libs/problems/BetterAuthAuthenticationProblem.ts"`; `kind`: `"problem-class"`; `line`: `8`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"auth-better-auth/invalid-session-payload"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#auth-better-auth-invalid-session-payload"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/auth-better-auth/src/libs/problems/BetterAuthInvalidSessionProblem.ts"`; `kind`: `"problem-class"`; `line`: `7`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"BadRequest"`; `code`: `"auth-better-auth/invalid-webhook-payload"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#auth-better-auth-invalid-webhook-payload"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The caller sent malformed input or unsupported request options."`; `operatorAction`: `"Inspect validation details and request logs; do not retry unchanged input."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Correct the request input and retry after validation passes."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/auth-better-auth/src/libs/problems/WebhookProblems.ts"`; `kind`: `"problem-class"`; `line`: `23`; \}\]; `status`: `400`; `title`: `"Bad Request"`; \}, \{ `category`: `"Unauthorized"`; `code`: `"auth-better-auth/invalid-webhook-signature"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#auth-better-auth-invalid-webhook-signature"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request did not include valid authentication credentials."`; `operatorAction`: `"Check authentication configuration, token issuer, and clock skew."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Sign in again or provide a valid credential."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/auth-better-auth/src/libs/problems/WebhookProblems.ts"`; `kind`: `"problem-class"`; `line`: `7`; \}\]; `status`: `401`; `title`: `"Unauthorized"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"auth-better-auth/not-initialized"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#auth-better-auth-not-initialized"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/auth-better-auth/src/libs/problems/AuthProblems.ts"`; `kind`: `"problem-class"`; `line`: `7`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"auth-better-auth/session-lookup-failed"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#auth-better-auth-session-lookup-failed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/auth-better-auth/src/libs/problems/BetterAuthSessionLookupProblem.ts"`; `kind`: `"problem-class"`; `line`: `7`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"NotFound"`; `code`: `"auth-better-auth/session-not-found"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#auth-better-auth-session-not-found"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The requested resource or route-visible record does not exist."`; `operatorAction`: `"Confirm tenant scoping, data retention, and backing-store lookup behavior."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Verify the identifier and refresh the resource list before retrying."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/auth-better-auth/src/libs/problems/AuthProblems.ts"`; `kind`: `"problem-class"`; `line`: `23`; \}\]; `status`: `404`; `title`: `"Not Found"`; \}, \{ `category`: `"NotFound"`; `code`: `"auth-better-auth/user-not-found"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#auth-better-auth-user-not-found"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The requested resource or route-visible record does not exist."`; `operatorAction`: `"Confirm tenant scoping, data retention, and backing-store lookup behavior."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Verify the identifier and refresh the resource list before retrying."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/auth-better-auth/src/libs/problems/AuthProblems.ts"`; `kind`: `"problem-class"`; `line`: `39`; \}\]; `status`: `404`; `title`: `"Not Found"`; \}, \{ `category`: `"Conflict"`; `code`: `"auth-clerk/duplicate-tenant-mapping"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#auth-clerk-duplicate-tenant-mapping"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request conflicts with current state or an idempotency constraint."`; `operatorAction`: `"Inspect concurrent writes, idempotency keys, and uniqueness constraints."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Refresh state, resolve the conflict, and retry with the updated intent."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/auth-clerk/src/libs/problems/ClerkProblems.ts"`; `kind`: `"problem-class"`; `line`: `94`; \}\]; `status`: `409`; `title`: `"Conflict"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"auth-clerk/external-service-error"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#auth-clerk-external-service-error"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/auth-clerk/src/libs/problems/ClerkProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `121`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"ValidationError"`; `code`: `"auth-clerk/invalid-webhook-payload"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#auth-clerk-invalid-webhook-payload"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request or generated contract failed schema or semantic validation."`; `operatorAction`: `"Inspect schema diagnostics, generated contracts, and validation metadata."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Fix the invalid fields and retry with schema-conformant input."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/auth-clerk/src/libs/problems/ClerkProblems.ts"`; `kind`: `"problem-class"`; `line`: `19`; \}\]; `status`: `422`; `title`: `"Validation Error"`; \}, \{ `category`: `"Unauthorized"`; `code`: `"auth-clerk/malformed-claim"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#auth-clerk-malformed-claim"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request did not include valid authentication credentials."`; `operatorAction`: `"Check authentication configuration, token issuer, and clock skew."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Sign in again or provide a valid credential."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/auth-clerk/src/libs/problems/ClerkProblems.ts"`; `kind`: `"problem-class"`; `line`: `83`; \}\]; `status`: `401`; `title`: `"Unauthorized"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"auth-clerk/public-user-data-missing"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#auth-clerk-public-user-data-missing"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/auth-clerk/src/libs/problems/ClerkProblems.ts"`; `kind`: `"problem-class"`; `line`: `109`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"Unauthorized"`; `code`: `"auth-clerk/token-verification-failed"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#auth-clerk-token-verification-failed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request did not include valid authentication credentials."`; `operatorAction`: `"Check authentication configuration, token issuer, and clock skew."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Sign in again or provide a valid credential."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/auth-clerk/src/libs/problems/ClerkProblems.ts"`; `kind`: `"problem-class"`; `line`: `36`; \}\]; `status`: `401`; `title`: `"Unauthorized"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"auth-clerk/token-verification-upstream-failed"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#auth-clerk-token-verification-upstream-failed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/auth-clerk/src/libs/problems/ClerkProblems.ts"`; `kind`: `"problem-class"`; `line`: `60`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"Unauthorized"`; `code`: `"auth-clerk/webhook-verification-failed"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#auth-clerk-webhook-verification-failed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request did not include valid authentication credentials."`; `operatorAction`: `"Check authentication configuration, token issuer, and clock skew."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Sign in again or provide a valid credential."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/auth-clerk/src/libs/problems/ClerkProblems.ts"`; `kind`: `"problem-class"`; `line`: `8`; \}\]; `status`: `401`; `title`: `"Unauthorized"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"auth-core/api-key-creation-failed"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#auth-core-api-key-creation-failed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/auth-core/src/libs/problems/AuthProblems.ts"`; `kind`: `"problem-class"`; `line`: `80`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"Conflict"`; `code`: `"auth-core/api-key-rotation-conflict"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#auth-core-api-key-rotation-conflict"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request conflicts with current state or an idempotency constraint."`; `operatorAction`: `"Inspect concurrent writes, idempotency keys, and uniqueness constraints."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Refresh state, resolve the conflict, and retry with the updated intent."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/auth-core/src/libs/problems/AuthProblems.ts"`; `kind`: `"problem-class"`; `line`: `88`; \}\]; `status`: `409`; `title`: `"Conflict"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"auth-core/api-key-rotation-protection-failed"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#auth-core-api-key-rotation-protection-failed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/auth-core/src/libs/apikey/ApiKeyRotationProtector.ts"`; `kind`: `"problem-constructor"`; `line`: `28`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"auth-core/auth-provider-unavailable"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#auth-core-auth-provider-unavailable"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/auth-core/src/libs/problems/AuthProblems.ts"`; `kind`: `"problem-class"`; `line`: `21`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"ValidationError"`; `code`: `"auth-core/invalid-api-key-rotation-idempotency-key"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#auth-core-invalid-api-key-rotation-idempotency-key"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request or generated contract failed schema or semantic validation."`; `operatorAction`: `"Inspect schema diagnostics, generated contracts, and validation metadata."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Fix the invalid fields and retry with schema-conformant input."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/auth-core/src/libs/problems/AuthProblems.ts"`; `kind`: `"problem-class"`; `line`: `96`; \}\]; `status`: `422`; `title`: `"Validation Error"`; \}, \{ `category`: `"ValidationError"`; `code`: `"auth-core/invalid-permission-action"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#auth-core-invalid-permission-action"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request or generated contract failed schema or semantic validation."`; `operatorAction`: `"Inspect schema diagnostics, generated contracts, and validation metadata."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Fix the invalid fields and retry with schema-conformant input."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/auth-core/src/libs/problems/AuthProblems.ts"`; `kind`: `"problem-class"`; `line`: `72`; \}\]; `status`: `422`; `title`: `"Validation Error"`; \}, \{ `category`: `"ValidationError"`; `code`: `"auth-core/invalid-permission-format"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#auth-core-invalid-permission-format"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request or generated contract failed schema or semantic validation."`; `operatorAction`: `"Inspect schema diagnostics, generated contracts, and validation metadata."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Fix the invalid fields and retry with schema-conformant input."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/auth-core/src/libs/problems/AuthProblems.ts"`; `kind`: `"problem-class"`; `line`: `64`; \}\]; `status`: `422`; `title`: `"Validation Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"auth-core/invalid-route-metadata-target"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#auth-core-invalid-route-metadata-target"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"An authentication guard received a route metadata target that was neither an object nor a function."`; `operatorAction`: `"Inspect the route adapter metadata target and ensure it returns the controller object or constructor before handling requests."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Do not retry the unchanged request; ask the service operator to correct the route metadata configuration."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/auth-core/src/libs/problems/AuthProblems.ts"`; `kind`: `"problem-class"`; `line`: `35`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"BadRequest"`; `code`: `"BAD_REQUEST"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#bad-request"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The caller sent malformed input or unsupported request options."`; `operatorAction`: `"Inspect validation details and request logs; do not retry unchanged input."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Correct the request input and retry after validation passes."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/access-core/src/libs/guards/AccessGuard.ts"`; `kind`: `"problem-constructor"`; `line`: `11`; \}\]; `status`: `400`; `title`: `"Bad Request"`; \}, \{ `category`: `"BadRequest"`; `code`: `"batch-qstash/invalid-publish-request"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#batch-qstash-invalid-publish-request"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The caller sent malformed input or unsupported request options."`; `operatorAction`: `"Inspect validation details and request logs; do not retry unchanged input."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Correct the request input and retry after validation passes."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/batch-qstash/src/libs/problems/QStashBatchProblems.ts"`; `kind`: `"problem-class"`; `line`: `18`; \}\]; `status`: `400`; `title`: `"Bad Request"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"batch-qstash/missing-config"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#batch-qstash-missing-config"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/batch-qstash/src/libs/problems/QStashBatchProblems.ts"`; `kind`: `"problem-class"`; `line`: `4`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"BILLING_STATUS_MAPPING_FAILED"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#billing-status-mapping-failed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/billing-polar/src/libs/problems/BillingStatusMappingProblem.ts"`; `kind`: `"problem-class"`; `line`: `4`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"Conflict"`; `code`: `"billing-polar/checkout-idempotency-conflict"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#billing-polar-checkout-idempotency-conflict"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request conflicts with current state or an idempotency constraint."`; `operatorAction`: `"Inspect concurrent writes, idempotency keys, and uniqueness constraints."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Refresh state, resolve the conflict, and retry with the updated intent."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/billing-polar/src/libs/problems/PolarBillingProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `54`; \}\]; `status`: `409`; `title`: `"Conflict"`; \}, \{ `category`: `"NotFound"`; `code`: `"billing-polar/customer-not-found"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#billing-polar-customer-not-found"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The requested resource or route-visible record does not exist."`; `operatorAction`: `"Confirm tenant scoping, data retention, and backing-store lookup behavior."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Verify the identifier and refresh the resource list before retrying."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/billing-polar/src/libs/problems/PolarBillingProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `72`; \}\]; `status`: `404`; `title`: `"Not Found"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"billing-polar/missing-config"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#billing-polar-missing-config"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/billing-polar/src/libs/problems/PolarBillingProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `18`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"billing-polar/retryable-upstream"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#billing-polar-retryable-upstream"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/billing-polar/src/libs/problems/PolarBillingProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `98`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"NotFound"`; `code`: `"billing-polar/subscription-not-found"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#billing-polar-subscription-not-found"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The requested resource or route-visible record does not exist."`; `operatorAction`: `"Confirm tenant scoping, data retention, and backing-store lookup behavior."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Verify the identifier and refresh the resource list before retrying."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/billing-polar/src/libs/problems/PolarBillingProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `85`; \}\]; `status`: `404`; `title`: `"Not Found"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"billing-polar/terminal-upstream"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#billing-polar-terminal-upstream"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/billing-polar/src/libs/problems/PolarBillingProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `114`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"ValidationError"`; `code`: `"billing-polar/validation-failed"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#billing-polar-validation-failed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request or generated contract failed schema or semantic validation."`; `operatorAction`: `"Inspect schema diagnostics, generated contracts, and validation metadata."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Fix the invalid fields and retry with schema-conformant input."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/billing-polar/src/libs/problems/PolarBillingProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `38`; \}\]; `status`: `422`; `title`: `"Validation Error"`; \}, \{ `category`: `"NotFound"`; `code`: `"billing/account-not-found"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#billing-account-not-found"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The requested resource or route-visible record does not exist."`; `operatorAction`: `"Confirm tenant scoping, data retention, and backing-store lookup behavior."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Verify the identifier and refresh the resource list before retrying."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/billing-core/src/libs/problems/BillingProblems.ts"`; `kind`: `"problem-class"`; `line`: `32`; \}\]; `status`: `404`; `title`: `"Not Found"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"billing/checkout-creation-failed"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#billing-checkout-creation-failed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/billing-core/src/libs/problems/BillingProblems.ts"`; `kind`: `"problem-class"`; `line`: `92`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"Conflict"`; `code`: `"billing/checkout-in-progress"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#billing-checkout-in-progress"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request conflicts with current state or an idempotency constraint."`; `operatorAction`: `"Inspect concurrent writes, idempotency keys, and uniqueness constraints."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Refresh state, resolve the conflict, and retry with the updated intent."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/billing-core/src/libs/problems/BillingProblems.ts"`; `kind`: `"problem-class"`; `line`: `100`; \}\]; `status`: `409`; `title`: `"Conflict"`; \}, \{ `category`: `"BadRequest"`; `code`: `"billing/invalid-lifecycle-idempotency-key"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#billing-invalid-lifecycle-idempotency-key"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The caller sent malformed input or unsupported request options."`; `operatorAction`: `"Inspect validation details and request logs; do not retry unchanged input."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Correct the request input and retry after validation passes."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/billing-core/src/libs/problems/BillingProblems.ts"`; `kind`: `"problem-class"`; `line`: `80`; \}\]; `status`: `400`; `title`: `"Bad Request"`; \}, \{ `category`: `"BadRequest"`; `code`: `"billing/invalid-money-amount"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#billing-invalid-money-amount"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The caller sent malformed input or unsupported request options."`; `operatorAction`: `"Inspect validation details and request logs; do not retry unchanged input."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Correct the request input and retry after validation passes."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/billing-core/src/libs/problems/BillingProblems.ts"`; `kind`: `"problem-class"`; `line`: `113`; \}\]; `status`: `400`; `title`: `"Bad Request"`; \}, \{ `category`: `"BadRequest"`; `code`: `"billing/invalid-money-currency"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#billing-invalid-money-currency"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The caller sent malformed input or unsupported request options."`; `operatorAction`: `"Inspect validation details and request logs; do not retry unchanged input."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Correct the request input and retry after validation passes."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/billing-core/src/libs/problems/BillingProblems.ts"`; `kind`: `"problem-class"`; `line`: `121`; \}\]; `status`: `400`; `title`: `"Bad Request"`; \}, \{ `category`: `"BadRequest"`; `code`: `"billing/invalid-plan-release-schedule"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#billing-invalid-plan-release-schedule"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The caller sent malformed input or unsupported request options."`; `operatorAction`: `"Inspect validation details and request logs; do not retry unchanged input."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Correct the request input and retry after validation passes."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/billing-core/src/libs/problems/PlanReleaseProblems.ts"`; `kind`: `"problem-class"`; `line`: `60`; \}\]; `status`: `400`; `title`: `"Bad Request"`; \}, \{ `category`: `"BusinessRuleViolation"`; `code`: `"billing/invalid-plan-release-transition"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#billing-invalid-plan-release-transition"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request is syntactically valid but violates a domain rule."`; `operatorAction`: `"Review domain policy, entitlement, quota, and lifecycle rule evidence."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Change the workflow state or request values so the business rule is satisfied."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/billing-core/src/libs/problems/PlanReleaseProblems.ts"`; `kind`: `"problem-class"`; `line`: `16`; \}\]; `status`: `422`; `title`: `"Business Rule Violation"`; \}, \{ `category`: `"BadRequest"`; `code`: `"billing/invalid-plan-version-definition"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#billing-invalid-plan-version-definition"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The caller sent malformed input or unsupported request options."`; `operatorAction`: `"Inspect validation details and request logs; do not retry unchanged input."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Correct the request input and retry after validation passes."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/billing-core/src/libs/problems/BillingProblems.ts"`; `kind`: `"problem-class"`; `line`: `157`; \}\]; `status`: `400`; `title`: `"Bad Request"`; \}, \{ `category`: `"BadRequest"`; `code`: `"billing/invalid-plan-version-ref"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#billing-invalid-plan-version-ref"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The caller sent malformed input or unsupported request options."`; `operatorAction`: `"Inspect validation details and request logs; do not retry unchanged input."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Correct the request input and retry after validation passes."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/billing-core/src/libs/problems/BillingProblems.ts"`; `kind`: `"problem-class"`; `line`: `149`; \}\]; `status`: `400`; `title`: `"Bad Request"`; \}, \{ `category`: `"BadRequest"`; `code`: `"billing/invalid-subscription-quantity"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#billing-invalid-subscription-quantity"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The caller sent malformed input or unsupported request options."`; `operatorAction`: `"Inspect validation details and request logs; do not retry unchanged input."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Correct the request input and retry after validation passes."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/billing-core/src/libs/problems/BillingProblems.ts"`; `kind`: `"problem-class"`; `line`: `216`; \}\]; `status`: `400`; `title`: `"Bad Request"`; \}, \{ `category`: `"Conflict"`; `code`: `"billing/lifecycle-command-conflict"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#billing-lifecycle-command-conflict"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request conflicts with current state or an idempotency constraint."`; `operatorAction`: `"Inspect concurrent writes, idempotency keys, and uniqueness constraints."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Refresh state, resolve the conflict, and retry with the updated intent."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/billing-core/src/libs/problems/BillingProblems.ts"`; `kind`: `"problem-class"`; `line`: `48`; \}\]; `status`: `409`; `title`: `"Conflict"`; \}, \{ `category`: `"Conflict"`; `code`: `"billing/lifecycle-command-in-progress"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#billing-lifecycle-command-in-progress"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request conflicts with current state or an idempotency constraint."`; `operatorAction`: `"Inspect concurrent writes, idempotency keys, and uniqueness constraints."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Refresh state, resolve the conflict, and retry with the updated intent."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/billing-core/src/libs/problems/BillingProblems.ts"`; `kind`: `"problem-class"`; `line`: `60`; \}\]; `status`: `409`; `title`: `"Conflict"`; \}, \{ `category`: `"NotFound"`; `code`: `"billing/lifecycle-command-not-found"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#billing-lifecycle-command-not-found"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The requested resource or route-visible record does not exist."`; `operatorAction`: `"Confirm tenant scoping, data retention, and backing-store lookup behavior."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Verify the identifier and refresh the resource list before retrying."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/billing-core/src/libs/problems/BillingProblems.ts"`; `kind`: `"problem-class"`; `line`: `72`; \}\]; `status`: `404`; `title`: `"Not Found"`; \}, \{ `category`: `"BusinessRuleViolation"`; `code`: `"billing/money-currency-mismatch"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#billing-money-currency-mismatch"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request is syntactically valid but violates a domain rule."`; `operatorAction`: `"Review domain policy, entitlement, quota, and lifecycle rule evidence."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Change the workflow state or request values so the business rule is satisfied."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/billing-core/src/libs/problems/BillingProblems.ts"`; `kind`: `"problem-class"`; `line`: `129`; \}\]; `status`: `422`; `title`: `"Business Rule Violation"`; \}, \{ `category`: `"BadRequest"`; `code`: `"billing/money-division-by-zero"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#billing-money-division-by-zero"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The caller sent malformed input or unsupported request options."`; `operatorAction`: `"Inspect validation details and request logs; do not retry unchanged input."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Correct the request input and retry after validation passes."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/billing-core/src/libs/problems/BillingProblems.ts"`; `kind`: `"problem-class"`; `line`: `141`; \}\]; `status`: `400`; `title`: `"Bad Request"`; \}, \{ `category`: `"Conflict"`; `code`: `"billing/overlapping-plan-effective-period"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#billing-overlapping-plan-effective-period"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request conflicts with current state or an idempotency constraint."`; `operatorAction`: `"Inspect concurrent writes, idempotency keys, and uniqueness constraints."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Refresh state, resolve the conflict, and retry with the updated intent."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/billing-core/src/libs/problems/PlanReleaseProblems.ts"`; `kind`: `"problem-class"`; `line`: `28`; \}\]; `status`: `409`; `title`: `"Conflict"`; \}, \{ `category`: `"ValidationError"`; `code`: `"billing/plan-release-provider-capability-failed"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#billing-plan-release-provider-capability-failed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request or generated contract failed schema or semantic validation."`; `operatorAction`: `"Inspect schema diagnostics, generated contracts, and validation metadata."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Fix the invalid fields and retry with schema-conformant input."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/billing-core/src/libs/problems/PlanReleaseProblems.ts"`; `kind`: `"problem-class"`; `line`: `50`; \}\]; `status`: `422`; `title`: `"Validation Error"`; \}, \{ `category`: `"Conflict"`; `code`: `"billing/plan-release-publish-conflict"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#billing-plan-release-publish-conflict"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request conflicts with current state or an idempotency constraint."`; `operatorAction`: `"Inspect concurrent writes, idempotency keys, and uniqueness constraints."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Refresh state, resolve the conflict, and retry with the updated intent."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/billing-core/src/libs/problems/PlanReleaseProblems.ts"`; `kind`: `"problem-class"`; `line`: `68`; \}\]; `status`: `409`; `title`: `"Conflict"`; \}, \{ `category`: `"ValidationError"`; `code`: `"billing/plan-release-validation-failed"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#billing-plan-release-validation-failed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request or generated contract failed schema or semantic validation."`; `operatorAction`: `"Inspect schema diagnostics, generated contracts, and validation metadata."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Fix the invalid fields and retry with schema-conformant input."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/billing-core/src/libs/problems/PlanReleaseProblems.ts"`; `kind`: `"problem-class"`; `line`: `40`; \}\]; `status`: `422`; `title`: `"Validation Error"`; \}, \{ `category`: `"Conflict"`; `code`: `"billing/plan-version-already-published"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#billing-plan-version-already-published"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request conflicts with current state or an idempotency constraint."`; `operatorAction`: `"Inspect concurrent writes, idempotency keys, and uniqueness constraints."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Refresh state, resolve the conflict, and retry with the updated intent."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/billing-core/src/libs/problems/BillingProblems.ts"`; `kind`: `"problem-class"`; `line`: `165`; \}\]; `status`: `409`; `title`: `"Conflict"`; \}, \{ `category`: `"Conflict"`; `code`: `"billing/plan-version-conflict"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#billing-plan-version-conflict"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request conflicts with current state or an idempotency constraint."`; `operatorAction`: `"Inspect concurrent writes, idempotency keys, and uniqueness constraints."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Refresh state, resolve the conflict, and retry with the updated intent."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/billing-core/src/libs/problems/BillingProblems.ts"`; `kind`: `"problem-class"`; `line`: `173`; \}\]; `status`: `409`; `title`: `"Conflict"`; \}, \{ `category`: `"NotImplemented"`; `code`: `"billing/provider-capability-unavailable"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#billing-provider-capability-unavailable"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The requested capability is not supported by this runtime or adapter."`; `operatorAction`: `"Check runtime capability declarations and provider maturity documentation."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Use a supported capability or choose an adapter/runtime that provides it."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/billing-core/src/libs/problems/BillingProblems.ts"`; `kind`: `"problem-class"`; `line`: `6`; \}\]; `status`: `501`; `title`: `"Not Implemented"`; \}, \{ `category`: `"Conflict"`; `code`: `"billing/stale-plan-release-revision"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#billing-stale-plan-release-revision"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request conflicts with current state or an idempotency constraint."`; `operatorAction`: `"Inspect concurrent writes, idempotency keys, and uniqueness constraints."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Refresh state, resolve the conflict, and retry with the updated intent."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/billing-core/src/libs/problems/PlanReleaseProblems.ts"`; `kind`: `"problem-class"`; `line`: `4`; \}\]; `status`: `409`; `title`: `"Conflict"`; \}, \{ `category`: `"NotFound"`; `code`: `"billing/subscription-not-found"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#billing-subscription-not-found"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The requested resource or route-visible record does not exist."`; `operatorAction`: `"Confirm tenant scoping, data retention, and backing-store lookup behavior."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Verify the identifier and refresh the resource list before retrying."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/billing-core/src/libs/problems/BillingProblems.ts"`; `kind`: `"problem-class"`; `line`: `24`; \}\]; `status`: `404`; `title`: `"Not Found"`; \}, \{ `category`: `"BusinessRuleViolation"`; `code`: `"billing/subscription-plan-version-mismatch"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#billing-subscription-plan-version-mismatch"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request is syntactically valid but violates a domain rule."`; `operatorAction`: `"Review domain policy, entitlement, quota, and lifecycle rule evidence."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Change the workflow state or request values so the business rule is satisfied."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/billing-core/src/libs/problems/BillingProblems.ts"`; `kind`: `"problem-class"`; `line`: `203`; \}\]; `status`: `422`; `title`: `"Business Rule Violation"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"billing/subscription-quantity-provider-mismatch"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#billing-subscription-quantity-provider-mismatch"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/billing-core/src/libs/problems/BillingProblems.ts"`; `kind`: `"problem-class"`; `line`: `262`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"Conflict"`; `code`: `"billing/subscription-quantity-provider-source-ahead"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#billing-subscription-quantity-provider-source-ahead"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request conflicts with current state or an idempotency constraint."`; `operatorAction`: `"Inspect concurrent writes, idempotency keys, and uniqueness constraints."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Refresh state, resolve the conflict, and retry with the updated intent."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/billing-core/src/libs/problems/BillingProblems.ts"`; `kind`: `"problem-class"`; `line`: `275`; \}\]; `status`: `409`; `title`: `"Conflict"`; \}, \{ `category`: `"Conflict"`; `code`: `"billing/subscription-quantity-reconciliation-conflict"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#billing-subscription-quantity-reconciliation-conflict"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request conflicts with current state or an idempotency constraint."`; `operatorAction`: `"Inspect concurrent writes, idempotency keys, and uniqueness constraints."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Refresh state, resolve the conflict, and retry with the updated intent."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/billing-core/src/libs/problems/BillingProblems.ts"`; `kind`: `"problem-class"`; `line`: `241`; \}\]; `status`: `409`; `title`: `"Conflict"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"billing/subscription-quantity-reconciliation-failed"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#billing-subscription-quantity-reconciliation-failed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/billing-core/src/libs/problems/BillingProblems.ts"`; `kind`: `"problem-class"`; `line`: `251`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"Conflict"`; `code`: `"billing/subscription-quantity-source-mismatch"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#billing-subscription-quantity-source-mismatch"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request conflicts with current state or an idempotency constraint."`; `operatorAction`: `"Inspect concurrent writes, idempotency keys, and uniqueness constraints."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Refresh state, resolve the conflict, and retry with the updated intent."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/billing-core/src/libs/problems/BillingProblems.ts"`; `kind`: `"problem-class"`; `line`: `224`; \}\]; `status`: `409`; `title`: `"Conflict"`; \}, \{ `category`: `"NotFound"`; `code`: `"billing/unknown-plan-version"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#billing-unknown-plan-version"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The requested resource or route-visible record does not exist."`; `operatorAction`: `"Confirm tenant scoping, data retention, and backing-store lookup behavior."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Verify the identifier and refresh the resource list before retrying."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/billing-core/src/libs/problems/BillingProblems.ts"`; `kind`: `"problem-class"`; `line`: `181`; \}\]; `status`: `404`; `title`: `"Not Found"`; \}, \{ `category`: `"NotFound"`; `code`: `"billing/unknown-provider-plan-mapping"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#billing-unknown-provider-plan-mapping"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The requested resource or route-visible record does not exist."`; `operatorAction`: `"Confirm tenant scoping, data retention, and backing-store lookup behavior."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Verify the identifier and refresh the resource list before retrying."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/billing-core/src/libs/problems/BillingProblems.ts"`; `kind`: `"problem-class"`; `line`: `189`; \}\]; `status`: `404`; `title`: `"Not Found"`; \}, \{ `category`: `"Conflict"`; `code`: `"billing/webhook-already-processed"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#billing-webhook-already-processed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request conflicts with current state or an idempotency constraint."`; `operatorAction`: `"Inspect concurrent writes, idempotency keys, and uniqueness constraints."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Refresh state, resolve the conflict, and retry with the updated intent."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/billing-core/src/libs/problems/BillingProblems.ts"`; `kind`: `"problem-class"`; `line`: `40`; \}\]; `status`: `409`; `title`: `"Conflict"`; \}, \{ `category`: `"Forbidden"`; `code`: `"BLOCKED_DURING_IMPERSONATION"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#blocked-during-impersonation"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The authenticated caller is not allowed to perform the requested action."`; `operatorAction`: `"Review policy, role, tenant, entitlement, and impersonation context."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Request the required permission or choose an allowed action."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/impersonation-core/src/libs/problems/ImpersonationProblems.ts"`; `kind`: `"problem-class"`; `line`: `49`; \}\]; `status`: `403`; `title`: `"Forbidden"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"cache-core/invalid-decorator-config"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#cache-core-invalid-decorator-config"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/cache-core/src/libs/problems/CacheDecoratorProblems.ts"`; `kind`: `"problem-class"`; `line`: `12`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"ValidationError"`; `code`: `"cache-core/invalid-ttl"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#cache-core-invalid-ttl"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request or generated contract failed schema or semantic validation."`; `operatorAction`: `"Inspect schema diagnostics, generated contracts, and validation metadata."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Fix the invalid fields and retry with schema-conformant input."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/cache-core/src/libs/problems/CacheStoreProblems.ts"`; `kind`: `"problem-class"`; `line`: `7`; \}\]; `status`: `422`; `title`: `"Validation Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"cache-core/invalidation-assertion-failed"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#cache-core-invalidation-assertion-failed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/cache-core/src/libs/problems/CacheDecoratorProblems.ts"`; `kind`: `"problem-class"`; `line`: `102`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"cache-core/invalidation-capability-unsupported"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#cache-core-invalidation-capability-unsupported"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/cache-core/src/libs/problems/CacheDecoratorProblems.ts"`; `kind`: `"problem-class"`; `line`: `55`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"ValidationError"`; `code`: `"cache-core/invalidation-event-unknown"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#cache-core-invalidation-event-unknown"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request or generated contract failed schema or semantic validation."`; `operatorAction`: `"Inspect schema diagnostics, generated contracts, and validation metadata."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Fix the invalid fields and retry with schema-conformant input."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/cache-core/src/libs/problems/CacheDecoratorProblems.ts"`; `kind`: `"problem-class"`; `line`: `41`; \}\]; `status`: `422`; `title`: `"Validation Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"cache-core/invalidation-failed"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#cache-core-invalidation-failed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/cache-core/src/libs/problems/CacheDecoratorProblems.ts"`; `kind`: `"problem-class"`; `line`: `72`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"ValidationError"`; `code`: `"cache-core/invalidation-graph-invalid"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#cache-core-invalidation-graph-invalid"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request or generated contract failed schema or semantic validation."`; `operatorAction`: `"Inspect schema diagnostics, generated contracts, and validation metadata."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Fix the invalid fields and retry with schema-conformant input."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/cache-core/src/libs/problems/CacheDecoratorProblems.ts"`; `kind`: `"problem-class"`; `line`: `27`; \}\]; `status`: `422`; `title`: `"Validation Error"`; \}, \{ `category`: `"TooManyRequests"`; `code`: `"CIRCUIT_BREAKER_OPEN"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#circuit-breaker-open"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The caller exceeded a rate, quota, or concurrency limit."`; `operatorAction`: `"Check limiter state, quota configuration, and abuse signals."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Wait for the retry window or reduce request volume."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/retry-core/src/libs/errors/CircuitBreakerOpenProblem.ts"`; `kind`: `"problem-class"`; `line`: `7`; \}\]; `status`: `429`; `title`: `"Too Many Requests"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"cloudflare/images-invalid-ttl"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#cloudflare-images-invalid-ttl"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `13`; `file`: `"packages/storage-cloudflare/src/libs/CloudflareImagesProvider.ts"`; `kind`: `"problem-factory"`; `line`: `55`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"cloudflare/images-null-result"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#cloudflare-images-null-result"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `13`; `file`: `"packages/storage-cloudflare/src/libs/CloudflareImagesProvider.ts"`; `kind`: `"problem-factory"`; `line`: `277`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"cloudflare/images-upload-intent-null-result"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#cloudflare-images-upload-intent-null-result"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `13`; `file`: `"packages/storage-cloudflare/src/libs/CloudflareImagesProvider.ts"`; `kind`: `"problem-factory"`; `line`: `353`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"BadRequest"`; `code`: `"CONFLICTING_PAGINATION"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#conflicting-pagination"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The caller sent malformed input or unsupported request options."`; `operatorAction`: `"Inspect validation details and request logs; do not retry unchanged input."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Correct the request input and retry after validation passes."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/pagination-core/src/libs/problems.ts"`; `kind`: `"problem-class"`; `line`: `17`; \}\]; `status`: `400`; `title`: `"Bad Request"`; \}, \{ `category`: `"ValidationError"`; `code`: `"create-croco-app/directory-not-empty"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#create-croco-app-directory-not-empty"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request or generated contract failed schema or semantic validation."`; `operatorAction`: `"Inspect schema diagnostics, generated contracts, and validation metadata."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Fix the invalid fields and retry with schema-conformant input."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/create-croco-app/src/libs/problems/DirectoryNotEmptyProblem.ts"`; `kind`: `"problem-class"`; `line`: `4`; \}\]; `status`: `422`; `title`: `"Validation Error"`; \}, \{ `category`: `"ValidationError"`; `code`: `"create-croco-app/invalid-cli-option"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#create-croco-app-invalid-cli-option"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request or generated contract failed schema or semantic validation."`; `operatorAction`: `"Inspect schema diagnostics, generated contracts, and validation metadata."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Fix the invalid fields and retry with schema-conformant input."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/create-croco-app/src/libs/problems/InvalidCliOptionProblem.ts"`; `kind`: `"problem-class"`; `line`: `4`; \}\]; `status`: `422`; `title`: `"Validation Error"`; \}, \{ `category`: `"ValidationError"`; `code`: `"create-croco-app/invalid-goal-option"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#create-croco-app-invalid-goal-option"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request or generated contract failed schema or semantic validation."`; `operatorAction`: `"Inspect schema diagnostics, generated contracts, and validation metadata."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Fix the invalid fields and retry with schema-conformant input."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/create-croco-app/src/libs/problems/InvalidGoalOptionProblem.ts"`; `kind`: `"problem-class"`; `line`: `5`; \}\]; `status`: `422`; `title`: `"Validation Error"`; \}, \{ `category`: `"ValidationError"`; `code`: `"create-croco-app/invalid-saas-preset-option"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#create-croco-app-invalid-saas-preset-option"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request or generated contract failed schema or semantic validation."`; `operatorAction`: `"Inspect schema diagnostics, generated contracts, and validation metadata."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Fix the invalid fields and retry with schema-conformant input."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/create-croco-app/src/libs/problems/InvalidSaasPresetOptionProblem.ts"`; `kind`: `"problem-class"`; `line`: `4`; \}\]; `status`: `422`; `title`: `"Validation Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"create-croco-app/lambda-telemetry-boundary"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#create-croco-app-lambda-telemetry-boundary"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/create-croco-app/templates/addons/lambda/apps/graphql-api/src/telemetryFlush.ts"`; `kind`: `"problem-class"`; `line`: `10`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"create-croco-app/unexpected-failure"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#create-croco-app-unexpected-failure"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/create-croco-app/src/cli-result.ts"`; `kind`: `"problem-class"`; `line`: `28`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"ValidationError"`; `code`: `"create-croco-app/unsupported-node-version"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#create-croco-app-unsupported-node-version"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The detected Node.js version is outside the supported generated-app toolchain train."`; `operatorAction`: `"Compare the reported actual Node.js version with the supported Node.js 22 train and verify the active version-manager configuration."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `` "Install and activate Node.js 22 with `nvm install 22 && nvm use 22`, then rerun the command." ``; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/create-croco-app/src/libs/problems/UnsupportedNodeVersionProblem.ts"`; `kind`: `"problem-class"`; `line`: `4`; \}\]; `status`: `422`; `title`: `"Validation Error"`; \}, \{ `category`: `"ValidationError"`; `code`: `"create-croco-app/web-meta-vite-fullstack-missing-hydration-root"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#create-croco-app-web-meta-vite-fullstack-missing-hydration-root"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request or generated contract failed schema or semantic validation."`; `operatorAction`: `"Inspect schema diagnostics, generated contracts, and validation metadata."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Fix the invalid fields and retry with schema-conformant input."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/create-croco-app/templates/addons/web-meta-vite-fullstack/ssr-worker/src/client.tsx"`; `kind`: `"problem-constructor"`; `line`: `11`; \}\]; `status`: `422`; `title`: `"Validation Error"`; \}, \{ `category`: `"ValidationError"`; `code`: `"create-croco-app/web-meta-vite-missing-hydration-root"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#create-croco-app-web-meta-vite-missing-hydration-root"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request or generated contract failed schema or semantic validation."`; `operatorAction`: `"Inspect schema diagnostics, generated contracts, and validation metadata."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Fix the invalid fields and retry with schema-conformant input."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/create-croco-app/templates/addons/web-meta-vite/src/client.tsx"`; `kind`: `"problem-constructor"`; `line`: `11`; \}\]; `status`: `422`; `title`: `"Validation Error"`; \}, \{ `category`: `"Conflict"`; `code`: `"credits-core/account-mismatch"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#credits-core-account-mismatch"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request conflicts with current state or an idempotency constraint."`; `operatorAction`: `"Inspect concurrent writes, idempotency keys, and uniqueness constraints."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Refresh state, resolve the conflict, and retry with the updated intent."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/credits-core/src/libs/problems.ts"`; `kind`: `"problem-class"`; `line`: `81`; \}\]; `status`: `409`; `title`: `"Conflict"`; \}, \{ `category`: `"NotFound"`; `code`: `"credits-core/account-not-found"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#credits-core-account-not-found"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The requested resource or route-visible record does not exist."`; `operatorAction`: `"Confirm tenant scoping, data retention, and backing-store lookup behavior."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Verify the identifier and refresh the resource list before retrying."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/credits-core/src/libs/problems.ts"`; `kind`: `"problem-class"`; `line`: `15`; \}\]; `status`: `404`; `title`: `"Not Found"`; \}, \{ `category`: `"Conflict"`; `code`: `"credits-core/duplicate-conflict"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#credits-core-duplicate-conflict"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request conflicts with current state or an idempotency constraint."`; `operatorAction`: `"Inspect concurrent writes, idempotency keys, and uniqueness constraints."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Refresh state, resolve the conflict, and retry with the updated intent."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/credits-core/src/libs/problems.ts"`; `kind`: `"problem-class"`; `line`: `67`; \}\]; `status`: `409`; `title`: `"Conflict"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"credits-core/event-publication-failed"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#credits-core-event-publication-failed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/credits-core/src/libs/problems.ts"`; `kind`: `"problem-class"`; `line`: `143`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"BusinessRuleViolation"`; `code`: `"credits-core/expired-grant"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#credits-core-expired-grant"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request is syntactically valid but violates a domain rule."`; `operatorAction`: `"Review domain policy, entitlement, quota, and lifecycle rule evidence."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Change the workflow state or request values so the business rule is satisfied."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/credits-core/src/libs/problems.ts"`; `kind`: `"problem-class"`; `line`: `39`; \}\]; `status`: `422`; `title`: `"Business Rule Violation"`; \}, \{ `category`: `"BusinessRuleViolation"`; `code`: `"credits-core/insufficient-credits"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#credits-core-insufficient-credits"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request is syntactically valid but violates a domain rule."`; `operatorAction`: `"Review domain policy, entitlement, quota, and lifecycle rule evidence."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Change the workflow state or request values so the business rule is satisfied."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/credits-core/src/libs/problems.ts"`; `kind`: `"problem-class"`; `line`: `25`; \}\]; `status`: `422`; `title`: `"Business Rule Violation"`; \}, \{ `category`: `"ValidationError"`; `code`: `"credits-core/invalid-amount"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#credits-core-invalid-amount"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request or generated contract failed schema or semantic validation."`; `operatorAction`: `"Inspect schema diagnostics, generated contracts, and validation metadata."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Fix the invalid fields and retry with schema-conformant input."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/credits-core/src/libs/problems.ts"`; `kind`: `"problem-class"`; `line`: `5`; \}\]; `status`: `422`; `title`: `"Validation Error"`; \}, \{ `category`: `"ValidationError"`; `code`: `"credits-core/invalid-command"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#credits-core-invalid-command"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request or generated contract failed schema or semantic validation."`; `operatorAction`: `"Inspect schema diagnostics, generated contracts, and validation metadata."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Fix the invalid fields and retry with schema-conformant input."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/credits-core/src/libs/problems.ts"`; `kind`: `"problem-class"`; `line`: `109`; \}\]; `status`: `422`; `title`: `"Validation Error"`; \}, \{ `category`: `"BusinessRuleViolation"`; `code`: `"credits-core/refund-mismatch"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#credits-core-refund-mismatch"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request is syntactically valid but violates a domain rule."`; `operatorAction`: `"Review domain policy, entitlement, quota, and lifecycle rule evidence."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Change the workflow state or request values so the business rule is satisfied."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/credits-core/src/libs/problems.ts"`; `kind`: `"problem-class"`; `line`: `129`; \}\]; `status`: `422`; `title`: `"Business Rule Violation"`; \}, \{ `category`: `"BusinessRuleViolation"`; `code`: `"credits-core/reservation-mismatch"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#credits-core-reservation-mismatch"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request is syntactically valid but violates a domain rule."`; `operatorAction`: `"Review domain policy, entitlement, quota, and lifecycle rule evidence."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Change the workflow state or request values so the business rule is satisfied."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/credits-core/src/libs/problems.ts"`; `kind`: `"problem-class"`; `line`: `53`; \}\]; `status`: `422`; `title`: `"Business Rule Violation"`; \}, \{ `category`: `"Conflict"`; `code`: `"credits-core/stale-ledger-position"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#credits-core-stale-ledger-position"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request conflicts with current state or an idempotency constraint."`; `operatorAction`: `"Inspect concurrent writes, idempotency keys, and uniqueness constraints."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Refresh state, resolve the conflict, and retry with the updated intent."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/credits-core/src/libs/problems.ts"`; `kind`: `"problem-class"`; `line`: `95`; \}\]; `status`: `409`; `title`: `"Conflict"`; \}, \{ `category`: `"NotFound"`; `code`: `"credits-core/transaction-not-found"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#credits-core-transaction-not-found"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The requested resource or route-visible record does not exist."`; `operatorAction`: `"Confirm tenant scoping, data retention, and backing-store lookup behavior."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Verify the identifier and refresh the resource list before retrying."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/credits-core/src/libs/problems.ts"`; `kind`: `"problem-class"`; `line`: `119`; \}\]; `status`: `404`; `title`: `"Not Found"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"credits-drizzle/persistence-failure"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#credits-drizzle-persistence-failure"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/credits-drizzle/src/libs/problems.ts"`; `kind`: `"problem-class"`; `line`: `5`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"BadRequest"`; `code`: `"CROCO_CLI_JOBS_001"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#croco-cli-jobs-001"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The caller sent malformed input or unsupported request options."`; `operatorAction`: `"Inspect validation details and request logs; do not retry unchanged input."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Correct the request input and retry after validation passes."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/cli/src/commands/jobs.ts"`; `kind`: `"problem-constructor"`; `line`: `88`; \}\]; `status`: `400`; `title`: `"Bad Request"`; \}, \{ `category`: `"BadRequest"`; `code`: `"CROCO_CLI_JOBS_002"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#croco-cli-jobs-002"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The caller sent malformed input or unsupported request options."`; `operatorAction`: `"Inspect validation details and request logs; do not retry unchanged input."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Correct the request input and retry after validation passes."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/cli/src/commands/jobs.ts"`; `kind`: `"problem-constructor"`; `line`: `99`; \}\]; `status`: `400`; `title`: `"Bad Request"`; \}, \{ `category`: `"BadRequest"`; `code`: `"CROCO_CLI_JOBS_003"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#croco-cli-jobs-003"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The caller sent malformed input or unsupported request options."`; `operatorAction`: `"Inspect validation details and request logs; do not retry unchanged input."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Correct the request input and retry after validation passes."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/cli/src/commands/jobs.ts"`; `kind`: `"problem-constructor"`; `line`: `110`; \}\]; `status`: `400`; `title`: `"Bad Request"`; \}, \{ `category`: `"Conflict"`; `code`: `"CROCO_CLI_JOBS_004"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#croco-cli-jobs-004"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request conflicts with current state or an idempotency constraint."`; `operatorAction`: `"Inspect concurrent writes, idempotency keys, and uniqueness constraints."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Refresh state, resolve the conflict, and retry with the updated intent."`; \}; `sources`: readonly \[\{ `column`: `49`; `file`: `"packages/cli/src/commands/jobs.ts"`; `kind`: `"problem-metadata"`; `line`: `137`; \}\]; `status`: `409`; `title`: `"Conflict"`; \}, \{ `category`: `"NotFound"`; `code`: `"CROCO_CLI_JOBS_005"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#croco-cli-jobs-005"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The requested resource or route-visible record does not exist."`; `operatorAction`: `"Confirm tenant scoping, data retention, and backing-store lookup behavior."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Verify the identifier and refresh the resource list before retrying."`; \}; `sources`: readonly \[\{ `column`: `63`; `file`: `"packages/cli/src/commands/jobs.ts"`; `kind`: `"problem-metadata"`; `line`: `132`; \}\]; `status`: `404`; `title`: `"Not Found"`; \}, \{ `category`: `"BadRequest"`; `code`: `"CROCO_CLI_OPS_001"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#croco-cli-ops-001"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The caller sent malformed input or unsupported request options."`; `operatorAction`: `"Inspect validation details and request logs; do not retry unchanged input."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Correct the request input and retry after validation passes."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/cli/src/libs/ops.ts"`; `kind`: `"problem-constructor"`; `line`: `66`; \}\]; `status`: `400`; `title`: `"Bad Request"`; \}, \{ `category`: `"BadRequest"`; `code`: `"CROCO_CLI_OPS_002"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#croco-cli-ops-002"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The caller sent malformed input or unsupported request options."`; `operatorAction`: `"Inspect validation details and request logs; do not retry unchanged input."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Correct the request input and retry after validation passes."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/cli/src/libs/ops.ts"`; `kind`: `"problem-constructor"`; `line`: `55`; \}\]; `status`: `400`; `title`: `"Bad Request"`; \}, \{ `category`: `"BadRequest"`; `code`: `"CROCO_CLI_USAGE_DASHBOARD_005"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#croco-cli-usage-dashboard-005"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The caller sent malformed input or unsupported request options."`; `operatorAction`: `"Inspect validation details and request logs; do not retry unchanged input."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Correct the request input and retry after validation passes."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/cli/src/commands/generateUsageDashboard.ts"`; `kind`: `"problem-constructor"`; `line`: `24`; \}\]; `status`: `400`; `title`: `"Bad Request"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"CROCO_HTTP_MIDDLEWARE_001"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#croco-http-middleware-001"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"HTTP middleware returned without a Response, without shortCircuit(reason), and without calling next() exactly once."`; `operatorAction`: `"Update the named @croco/transports-http middleware to return next(), await next() once, return a Response, or return shortCircuit(reason) for intentional termination."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry only after the service owner ships a middleware contract fix."`; \}; `sources`: readonly \[\{ `column`: `12`; `file`: `"packages/transports-http/src/libs/CrocoRouteRegistrar.ts"`; `kind`: `"problem-factory"`; `line`: `367`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"CROCO_HTTP_MIDDLEWARE_002"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#croco-http-middleware-002"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"HTTP middleware attempted to resume the downstream pipeline more than once."`; `operatorAction`: `"Store the Response from a single next() call and reuse or transform it instead of calling next() again."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry only after the service owner ships a middleware contract fix."`; \}; `sources`: readonly \[\{ `column`: `15`; `file`: `"packages/transports-http/src/libs/CrocoRouteRegistrar.ts"`; `kind`: `"problem-factory"`; `line`: `272`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"CROCO_HTTP_SECURITY_001"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#croco-http-security-001"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"HTTP bootstrap validation found a generated or application app without the required security middleware set."`; `operatorAction`: `"Add the missing @croco/transports-http middleware or keep securityValidation disabled only in an explicit local migration/testing fixture."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Use an app build that registers security headers, CORS, body limit, and rate-limit middleware before first run."`; \}; `sources`: readonly \[\{ `column`: `11`; `file`: `"packages/transports-http/src/libs/CrocoApp.ts"`; `kind`: `"problem-factory"`; `line`: `278`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"BadRequest"`; `code`: `"CROCO_HTTP_SECURITY_002"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#croco-http-security-002"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The caller sent malformed input or unsupported request options."`; `operatorAction`: `"Inspect validation details and request logs; do not retry unchanged input."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Correct the request input and retry after validation passes."`; \}; `sources`: readonly \[\{ `column`: `11`; `file`: `"packages/transports-http/src/libs/middleware/SecurityMiddlewareMarker.ts"`; `kind`: `"problem-factory"`; `line`: `154`; \}\]; `status`: `400`; `title`: `"Bad Request"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"dataloader-core/batch-result-length-mismatch"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#dataloader-core-batch-result-length-mismatch"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/dataloader-core/src/libs/problems/BatchLoaderProblems.ts"`; `kind`: `"problem-class"`; `line`: `4`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"diagnostics-core/duplicate-provider"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#diagnostics-core-duplicate-provider"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/diagnostics-core/src/libs/problems/DiagnosticsProblems.ts"`; `kind`: `"problem-class"`; `line`: `7`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"Conflict"`; `code`: `"DUPLICATE_INVITATION"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#duplicate-invitation"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request conflicts with current state or an idempotency constraint."`; `operatorAction`: `"Inspect concurrent writes, idempotency keys, and uniqueness constraints."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Refresh state, resolve the conflict, and retry with the updated intent."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/invitation-core/src/libs/problems/RateLimitProblems.ts"`; `kind`: `"problem-class"`; `line`: `13`; \}\]; `status`: `409`; `title`: `"Conflict"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"DUPLICATE_RECOVER_HANDLER"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#duplicate-recover-handler"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/retry-core/src/libs/errors/DuplicateRecoverHandlerProblem.ts"`; `kind`: `"problem-class"`; `line`: `7`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"BadRequest"`; `code`: `"DURATION_PARSE_ERROR"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#duration-parse-error"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The caller sent malformed input or unsupported request options."`; `operatorAction`: `"Inspect validation details and request logs; do not retry unchanged input."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Correct the request input and retry after validation passes."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/framework-context/src/libs/problems/ContextProblems.ts"`; `kind`: `"problem-class"`; `line`: `15`; \}\]; `status`: `400`; `title`: `"Bad Request"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"EMBEDDING_ERROR"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#embedding-error"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/llm-core/src/libs/problems/LlmServiceProblem.ts"`; `kind`: `"problem-constructor"`; `line`: `43`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"Forbidden"`; `code`: `"ENTITLEMENT_DENIED"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#entitlement-denied"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The authenticated caller is not allowed to perform the requested action."`; `operatorAction`: `"Review policy, role, tenant, entitlement, and impersonation context."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Request the required permission or choose an allowed action."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/entitlements-core/src/libs/problems/EntitlementProblems.ts"`; `kind`: `"problem-class"`; `line`: `20`; \}\]; `status`: `403`; `title`: `"Forbidden"`; \}, \{ `category`: `"Forbidden"`; `code`: `"ENTITLEMENT_INACTIVE_SUBSCRIPTION"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#entitlement-inactive-subscription"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The authenticated caller is not allowed to perform the requested action."`; `operatorAction`: `"Review policy, role, tenant, entitlement, and impersonation context."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Request the required permission or choose an allowed action."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/entitlements-core/src/libs/problems/EntitlementProblems.ts"`; `kind`: `"problem-class"`; `line`: `46`; \}\]; `status`: `403`; `title`: `"Forbidden"`; \}, \{ `category`: `"Forbidden"`; `code`: `"ENTITLEMENT_MISSING_PLAN"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#entitlement-missing-plan"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The authenticated caller is not allowed to perform the requested action."`; `operatorAction`: `"Review policy, role, tenant, entitlement, and impersonation context."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Request the required permission or choose an allowed action."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/entitlements-core/src/libs/problems/EntitlementProblems.ts"`; `kind`: `"problem-class"`; `line`: `32`; \}\]; `status`: `403`; `title`: `"Forbidden"`; \}, \{ `category`: `"NotFound"`; `code`: `"ENTITLEMENT_NOT_FOUND"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#entitlement-not-found"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The requested resource or route-visible record does not exist."`; `operatorAction`: `"Confirm tenant scoping, data retention, and backing-store lookup behavior."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Verify the identifier and refresh the resource list before retrying."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/entitlements-core/src/libs/problems/EntitlementProblems.ts"`; `kind`: `"problem-class"`; `line`: `86`; \}\]; `status`: `404`; `title`: `"Not Found"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"ENTITLEMENT_PROVIDER_UNAVAILABLE"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#entitlement-provider-unavailable"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/entitlements-core/src/libs/problems/EntitlementProblems.ts"`; `kind`: `"problem-class"`; `line`: `74`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"TooManyRequests"`; `code`: `"ENTITLEMENT_QUOTA_EXCEEDED"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#entitlement-quota-exceeded"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The caller exceeded a rate, quota, or concurrency limit."`; `operatorAction`: `"Check limiter state, quota configuration, and abuse signals."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Wait for the retry window or reduce request volume."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/entitlements-core/src/libs/problems/EntitlementProblems.ts"`; `kind`: `"problem-class"`; `line`: `60`; \}\]; `status`: `429`; `title`: `"Too Many Requests"`; \}, \{ `category`: `"ValidationError"`; `code`: `"ENTITLEMENT_REQUIREMENT_INVALID"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#entitlement-requirement-invalid"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request or generated contract failed schema or semantic validation."`; `operatorAction`: `"Inspect schema diagnostics, generated contracts, and validation metadata."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Fix the invalid fields and retry with schema-conformant input."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/entitlements-core/src/libs/problems/EntitlementProblems.ts"`; `kind`: `"problem-class"`; `line`: `11`; \}\]; `status`: `422`; `title`: `"Validation Error"`; \}, \{ `category`: `"ValidationError"`; `code`: `"entitlements-core/definition-invalid"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#entitlements-core-definition-invalid"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request or generated contract failed schema or semantic validation."`; `operatorAction`: `"Inspect schema diagnostics, generated contracts, and validation metadata."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Fix the invalid fields and retry with schema-conformant input."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/entitlements-core/src/libs/problems/EntitlementProblems.ts"`; `kind`: `"problem-class"`; `line`: `95`; \}\]; `status`: `422`; `title`: `"Validation Error"`; \}, \{ `category`: `"Conflict"`; `code`: `"entitlements-core/plan-version-already-registered"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#entitlements-core-plan-version-already-registered"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request conflicts with current state or an idempotency constraint."`; `operatorAction`: `"Inspect concurrent writes, idempotency keys, and uniqueness constraints."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Refresh state, resolve the conflict, and retry with the updated intent."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/entitlements-core/src/libs/problems/EntitlementProblems.ts"`; `kind`: `"problem-class"`; `line`: `113`; \}\]; `status`: `409`; `title`: `"Conflict"`; \}, \{ `category`: `"Conflict"`; `code`: `"entitlements-core/plan-version-mismatch"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#entitlements-core-plan-version-mismatch"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request conflicts with current state or an idempotency constraint."`; `operatorAction`: `"Inspect concurrent writes, idempotency keys, and uniqueness constraints."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Refresh state, resolve the conflict, and retry with the updated intent."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/entitlements-core/src/libs/problems/EntitlementProblems.ts"`; `kind`: `"problem-class"`; `line`: `122`; \}\]; `status`: `409`; `title`: `"Conflict"`; \}, \{ `category`: `"NotFound"`; `code`: `"entitlements-core/plan-version-not-found"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#entitlements-core-plan-version-not-found"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The requested resource or route-visible record does not exist."`; `operatorAction`: `"Confirm tenant scoping, data retention, and backing-store lookup behavior."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Verify the identifier and refresh the resource list before retrying."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/entitlements-core/src/libs/problems/EntitlementProblems.ts"`; `kind`: `"problem-class"`; `line`: `104`; \}\]; `status`: `404`; `title`: `"Not Found"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"events-core/after-commit-outcome-required"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#events-core-after-commit-outcome-required"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/events-core/src/libs/problems/EventsProblems.ts"`; `kind`: `"problem-class"`; `line`: `107`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"events-core/after-commit-requires-active-transaction"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#events-core-after-commit-requires-active-transaction"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/events-core/src/libs/problems/EventsProblems.ts"`; `kind`: `"problem-class"`; `line`: `96`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"events-core/deserialization-error"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#events-core-deserialization-error"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/events-core/src/libs/problems/EventsProblems.ts"`; `kind`: `"problem-class"`; `line`: `40`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"events-core/duplicate-event-field"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#events-core-duplicate-event-field"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/events-core/src/libs/problems/EventsProblems.ts"`; `kind`: `"problem-class"`; `line`: `51`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"events-core/duplicate-event-name"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#events-core-duplicate-event-name"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/events-core/src/libs/problems/EventsProblems.ts"`; `kind`: `"problem-class"`; `line`: `66`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"events-core/event-bus-not-set"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#events-core-event-bus-not-set"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/events-core/src/libs/problems/EventsProblems.ts"`; `kind`: `"problem-class"`; `line`: `7`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"events-core/event-definition-error"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#events-core-event-definition-error"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/events-core/src/libs/problems/EventsProblems.ts"`; `kind`: `"problem-class"`; `line`: `18`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"events-core/transaction-context-unavailable"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#events-core-transaction-context-unavailable"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/events-core/src/libs/problems/EventsProblems.ts"`; `kind`: `"problem-class"`; `line`: `81`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"events-core/unknown-event-type"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#events-core-unknown-event-type"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/events-core/src/libs/problems/EventsProblems.ts"`; `kind`: `"problem-class"`; `line`: `29`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"TooManyRequests"`; `code`: `"events-inmemory/backpressure-exceeded"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#events-inmemory-backpressure-exceeded"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The caller exceeded a rate, quota, or concurrency limit."`; `operatorAction`: `"Check limiter state, quota configuration, and abuse signals."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Wait for the retry window or reduce request volume."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/events-inmemory/src/libs/problems/EventsInmemoryProblems.ts"`; `kind`: `"problem-class"`; `line`: `7`; \}\]; `status`: `429`; `title`: `"Too Many Requests"`; \}, \{ `category`: `"TooManyRequests"`; `code`: `"events-inmemory/backpressure-timeout"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#events-inmemory-backpressure-timeout"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The caller exceeded a rate, quota, or concurrency limit."`; `operatorAction`: `"Check limiter state, quota configuration, and abuse signals."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Wait for the retry window or reduce request volume."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/events-inmemory/src/libs/problems/EventsInmemoryProblems.ts"`; `kind`: `"problem-class"`; `line`: `23`; \}\]; `status`: `429`; `title`: `"Too Many Requests"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"events-inmemory/invalid-configuration"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#events-inmemory-invalid-configuration"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/events-inmemory/src/libs/InmemoryEventBus.ts"`; `kind`: `"problem-class"`; `line`: `72`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"events-inmemory/publish-dropped"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#events-inmemory-publish-dropped"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/events-inmemory/src/libs/InmemoryEventBus.ts"`; `kind`: `"problem-class"`; `line`: `51`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"events-inmemory/publish-failed"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#events-inmemory-publish-failed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/events-inmemory/src/libs/InmemoryEventBus.ts"`; `kind`: `"problem-class"`; `line`: `34`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"events-tx/configuration-invalid"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#events-tx-configuration-invalid"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/events-tx/src/libs/problems/EventsTxProblems.ts"`; `kind`: `"problem-class"`; `line`: `36`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"Conflict"`; `code`: `"events-tx/inbox-claim-conflict"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#events-tx-inbox-claim-conflict"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"An inbox completion request no longer owns the processing attempt it started."`; `operatorAction`: `"Inspect concurrent writes, idempotency keys, and uniqueness constraints, then verify workers complete only the attempt they claimed."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Acquire a new inbox claim before retrying processing; discard the stale completion when a new claim cannot be acquired."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/events-tx/src/libs/problems/EventsTxProblems.ts"`; `kind`: `"problem-class"`; `line`: `120`; \}\]; `status`: `409`; `title`: `"Conflict"`; \}, \{ `category`: `"Conflict"`; `code`: `"events-tx/outbox-idempotency-conflict"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#events-tx-outbox-idempotency-conflict"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request conflicts with current state or an idempotency constraint."`; `operatorAction`: `"Inspect concurrent writes, idempotency keys, and uniqueness constraints."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Refresh state, resolve the conflict, and retry with the updated intent."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/events-tx/src/libs/problems/EventsTxProblems.ts"`; `kind`: `"problem-class"`; `line`: `83`; \}\]; `status`: `409`; `title`: `"Conflict"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"events-tx/outbox-publish-exhausted"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#events-tx-outbox-publish-exhausted"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/events-tx/src/libs/problems/EventsTxProblems.ts"`; `kind`: `"problem-class"`; `line`: `105`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"events-tx/outbox-transaction-required"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#events-tx-outbox-transaction-required"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/events-tx/src/libs/problems/EventsTxProblems.ts"`; `kind`: `"problem-class"`; `line`: `64`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"events-tx/storage-error"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#events-tx-storage-error"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/events-tx/src/libs/problems/EventsTxProblems.ts"`; `kind`: `"problem-class"`; `line`: `73`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"events-tx/transaction-state-error"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#events-tx-transaction-state-error"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/events-tx/src/libs/problems/EventsTxProblems.ts"`; `kind`: `"problem-class"`; `line`: `56`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"execution/checkpoint-store-conformance"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#execution-checkpoint-store-conformance"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `12`; `file`: `"packages/execution-core/src/libs/ExecutionProblem.ts"`; `kind`: `"problem-constructor"`; `line`: `138`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"Conflict"`; `code`: `"execution/conflict"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#execution-conflict"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request conflicts with current state or an idempotency constraint."`; `operatorAction`: `"Inspect concurrent writes, idempotency keys, and uniqueness constraints."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Refresh state, resolve the conflict, and retry with the updated intent."`; \}; `sources`: readonly \[\{ `column`: `12`; `file`: `"packages/execution-core/src/libs/ExecutionProblem.ts"`; `kind`: `"problem-constructor"`; `line`: `90`; \}\]; `status`: `409`; `title`: `"Conflict"`; \}, \{ `category`: `"Conflict"`; `code`: `"execution/continuation-conflict"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#execution-continuation-conflict"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request conflicts with current state or an idempotency constraint."`; `operatorAction`: `"Inspect concurrent writes, idempotency keys, and uniqueness constraints."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Refresh state, resolve the conflict, and retry with the updated intent."`; \}; `sources`: readonly \[\{ `column`: `12`; `file`: `"packages/execution-core/src/libs/ExecutionProblem.ts"`; `kind`: `"problem-constructor"`; `line`: `129`; \}\]; `status`: `409`; `title`: `"Conflict"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"execution/continuation-unsupported"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#execution-continuation-unsupported"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `12`; `file`: `"packages/execution-core/src/libs/ExecutionProblem.ts"`; `kind`: `"problem-constructor"`; `line`: `118`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"Conflict"`; `code`: `"execution/idempotency-conflict"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#execution-idempotency-conflict"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request conflicts with current state or an idempotency constraint."`; `operatorAction`: `"Inspect concurrent writes, idempotency keys, and uniqueness constraints."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Refresh state, resolve the conflict, and retry with the updated intent."`; \}; `sources`: readonly \[\{ `column`: `12`; `file`: `"packages/execution-core/src/libs/ExecutionProblem.ts"`; `kind`: `"problem-constructor"`; `line`: `94`; \}\]; `status`: `409`; `title`: `"Conflict"`; \}, \{ `category`: `"ValidationError"`; `code`: `"execution/invalid-continuation-lease-duration"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#execution-invalid-continuation-lease-duration"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request or generated contract failed schema or semantic validation."`; `operatorAction`: `"Inspect schema diagnostics, generated contracts, and validation metadata."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Fix the invalid fields and retry with schema-conformant input."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/execution-core/src/libs/ExecutionProblem.ts"`; `kind`: `"problem-class"`; `line`: `29`; \}\]; `status`: `422`; `title`: `"Validation Error"`; \}, \{ `category`: `"Conflict"`; `code`: `"execution/invalid-state-transition"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#execution-invalid-state-transition"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request conflicts with current state or an idempotency constraint."`; `operatorAction`: `"Inspect concurrent writes, idempotency keys, and uniqueness constraints."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Refresh state, resolve the conflict, and retry with the updated intent."`; \}; `sources`: readonly \[\{ `column`: `12`; `file`: `"packages/execution-core/src/libs/ExecutionProblem.ts"`; `kind`: `"problem-constructor"`; `line`: `110`; \}\]; `status`: `409`; `title`: `"Conflict"`; \}, \{ `category`: `"Conflict"`; `code`: `"execution/max-retries-exceeded"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#execution-max-retries-exceeded"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request conflicts with current state or an idempotency constraint."`; `operatorAction`: `"Inspect concurrent writes, idempotency keys, and uniqueness constraints."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Refresh state, resolve the conflict, and retry with the updated intent."`; \}; `sources`: readonly \[\{ `column`: `12`; `file`: `"packages/execution-core/src/libs/ExecutionProblem.ts"`; `kind`: `"problem-constructor"`; `line`: `102`; \}\]; `status`: `409`; `title`: `"Conflict"`; \}, \{ `category`: `"NotFound"`; `code`: `"execution/not-found"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#execution-not-found"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The requested resource or route-visible record does not exist."`; `operatorAction`: `"Confirm tenant scoping, data retention, and backing-store lookup behavior."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Verify the identifier and refresh the resource list before retrying."`; \}; `sources`: readonly \[\{ `column`: `12`; `file`: `"packages/execution-core/src/libs/ExecutionProblem.ts"`; `kind`: `"problem-constructor"`; `line`: `86`; \}\]; `status`: `404`; `title`: `"Not Found"`; \}, \{ `category`: `"Forbidden"`; `code`: `"FORBIDDEN"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#forbidden"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The authenticated caller is not allowed to perform the requested action."`; `operatorAction`: `"Review policy, role, tenant, entitlement, and impersonation context."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Request the required permission or choose an allowed action."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/auth-core/src/libs/problems/AuthProblems.ts"`; `kind`: `"problem-class"`; `line`: `13`; \}\]; `status`: `403`; `title`: `"Forbidden"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"framework-config/config-schema-not-found"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#framework-config-config-schema-not-found"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/framework-config/src/libs/problems/ConfigProblems.ts"`; `kind`: `"problem-class"`; `line`: `4`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"ValidationError"`; `code`: `"framework-config/config-validation-failed"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#framework-config-config-validation-failed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request or generated contract failed schema or semantic validation."`; `operatorAction`: `"Inspect schema diagnostics, generated contracts, and validation metadata."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Fix the invalid fields and retry with schema-conformant input."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/framework-config/src/libs/problems/ConfigProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `15`; \}\]; `status`: `422`; `title`: `"Validation Error"`; \}, \{ `category`: `"ValidationError"`; `code`: `"framework-config/invalid-boolean-env"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#framework-config-invalid-boolean-env"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request or generated contract failed schema or semantic validation."`; `operatorAction`: `"Inspect schema diagnostics, generated contracts, and validation metadata."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Fix the invalid fields and retry with schema-conformant input."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/framework-config/src/libs/problems/ConfigProblems.ts"`; `kind`: `"problem-class"`; `line`: `24`; \}\]; `status`: `422`; `title`: `"Validation Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"framework-context/circular-dependency"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#framework-context-circular-dependency"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/framework-context/src/libs/problems/CircularDependencyProblem.ts"`; `kind`: `"problem-class"`; `line`: `7`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"framework-context/container-scope-disposed"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#framework-context-container-scope-disposed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `10`; `file`: `"packages/framework-context/src/libs/Container.ts"`; `kind`: `"problem-factory"`; `line`: `65`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"framework-context/context-middleware-execution-error"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#framework-context-context-middleware-execution-error"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/framework-context/src/libs/problems/ContextProblems.ts"`; `kind`: `"problem-class"`; `line`: `7`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"framework-context/di-resolution-failed"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#framework-context-di-resolution-failed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/framework-context/src/libs/problems/ContainerResolutionProblem.ts"`; `kind`: `"problem-class"`; `line`: `10`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"framework-context/di-scope-mismatch"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#framework-context-di-scope-mismatch"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/framework-context/src/libs/problems/ContainerResolutionProblem.ts"`; `kind`: `"problem-class"`; `line`: `31`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"ValidationError"`; `code`: `"framework-context/on-shutdown-decorator-invalid"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#framework-context-on-shutdown-decorator-invalid"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request or generated contract failed schema or semantic validation."`; `operatorAction`: `"Inspect schema diagnostics, generated contracts, and validation metadata."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Fix the invalid fields and retry with schema-conformant input."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/framework-context/src/libs/problems/ShutdownProblems.ts"`; `kind`: `"problem-class"`; `line`: `9`; \}\]; `status`: `422`; `title`: `"Validation Error"`; \}, \{ `category`: `"Conflict"`; `code`: `"framework-context/pipeline-graph-invalid"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#framework-context-pipeline-graph-invalid"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request conflicts with current state or an idempotency constraint."`; `operatorAction`: `"Inspect concurrent writes, idempotency keys, and uniqueness constraints."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Refresh state, resolve the conflict, and retry with the updated intent."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/framework-context/src/libs/problems/PipelineGraphProblems.ts"`; `kind`: `"problem-class"`; `line`: `7`; \}\]; `status`: `409`; `title`: `"Conflict"`; \}, \{ `category`: `"Conflict"`; `code`: `"framework-context/policy-capability-unavailable"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#framework-context-policy-capability-unavailable"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request conflicts with current state or an idempotency constraint."`; `operatorAction`: `"Inspect concurrent writes, idempotency keys, and uniqueness constraints."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Refresh state, resolve the conflict, and retry with the updated intent."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/framework-context/src/libs/problems/RuntimePolicyProblems.ts"`; `kind`: `"problem-class"`; `line`: `33`; \}\]; `status`: `409`; `title`: `"Conflict"`; \}, \{ `category`: `"Conflict"`; `code`: `"framework-context/policy-conflict"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#framework-context-policy-conflict"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request conflicts with current state or an idempotency constraint."`; `operatorAction`: `"Inspect concurrent writes, idempotency keys, and uniqueness constraints."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Refresh state, resolve the conflict, and retry with the updated intent."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/framework-context/src/libs/problems/RuntimePolicyProblems.ts"`; `kind`: `"problem-class"`; `line`: `9`; \}\]; `status`: `409`; `title`: `"Conflict"`; \}, \{ `category`: `"ValidationError"`; `code`: `"framework-context/policy-definition-invalid"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#framework-context-policy-definition-invalid"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request or generated contract failed schema or semantic validation."`; `operatorAction`: `"Inspect schema diagnostics, generated contracts, and validation metadata."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Fix the invalid fields and retry with schema-conformant input."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/framework-context/src/libs/problems/RuntimePolicyProblems.ts"`; `kind`: `"problem-class"`; `line`: `21`; \}\]; `status`: `422`; `title`: `"Validation Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"framework-context/request-scope-outside-context"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#framework-context-request-scope-outside-context"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `13`; `file`: `"packages/framework-context/src/libs/Container.ts"`; `kind`: `"problem-factory"`; `line`: `1705`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"Conflict"`; `code`: `"framework-context/shutdown-configuration-conflict"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#framework-context-shutdown-configuration-conflict"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request conflicts with current state or an idempotency constraint."`; `operatorAction`: `"Inspect concurrent writes, idempotency keys, and uniqueness constraints."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Refresh state, resolve the conflict, and retry with the updated intent."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/framework-context/src/libs/problems/ShutdownProblems.ts"`; `kind`: `"problem-class"`; `line`: `97`; \}\]; `status`: `409`; `title`: `"Conflict"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"framework-context/shutdown-hook-execution-failed"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#framework-context-shutdown-hook-execution-failed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/framework-context/src/libs/problems/ShutdownProblems.ts"`; `kind`: `"problem-class"`; `line`: `112`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"framework-context/shutdown-timeout"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#framework-context-shutdown-timeout"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/framework-context/src/libs/problems/ShutdownProblems.ts"`; `kind`: `"problem-class"`; `line`: `73`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"framework-module/circular-dependency"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#framework-module-circular-dependency"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/framework-module/src/problems.ts"`; `kind`: `"problem-constructor"`; `line`: `26`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"ValidationError"`; `code`: `"framework-module/invalid-module-definition"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#framework-module-invalid-module-definition"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request or generated contract failed schema or semantic validation."`; `operatorAction`: `"Inspect schema diagnostics, generated contracts, and validation metadata."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Fix the invalid fields and retry with schema-conformant input."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/framework-module/src/problems.ts"`; `kind`: `"problem-constructor"`; `line`: `16`; \}\]; `status`: `422`; `title`: `"Validation Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"framework-module/lifecycle-failed"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#framework-module-lifecycle-failed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/framework-module/src/problems.ts"`; `kind`: `"problem-constructor"`; `line`: `42`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"framework-module/provider-not-visible"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#framework-module-provider-not-visible"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/framework-module/src/problems.ts"`; `kind`: `"problem-constructor"`; `line`: `70`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"Conflict"`; `code`: `"framework-module/provider-ownership-conflict"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#framework-module-provider-ownership-conflict"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request conflicts with current state or an idempotency constraint."`; `operatorAction`: `"Inspect concurrent writes, idempotency keys, and uniqueness constraints."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Refresh state, resolve the conflict, and retry with the updated intent."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/framework-module/src/problems.ts"`; `kind`: `"problem-constructor"`; `line`: `92`; \}\]; `status`: `409`; `title`: `"Conflict"`; \}, \{ `category`: `"Conflict"`; `code`: `"framework-module/provider-write-not-owned"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#framework-module-provider-write-not-owned"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request conflicts with current state or an idempotency constraint."`; `operatorAction`: `"Inspect concurrent writes, idempotency keys, and uniqueness constraints."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Refresh state, resolve the conflict, and retry with the updated intent."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/framework-module/src/problems.ts"`; `kind`: `"problem-constructor"`; `line`: `108`; \}\]; `status`: `409`; `title`: `"Conflict"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"frontend-problems/fetch-unavailable"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#frontend-problems-fetch-unavailable"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/frontend-problems/src/index.ts"`; `kind`: `"problem-class"`; `line`: `204`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"ValidationError"`; `code`: `"frontend-vite/missing-cloudflare-vite-plugin"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#frontend-vite-missing-cloudflare-vite-plugin"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request or generated contract failed schema or semantic validation."`; `operatorAction`: `"Inspect schema diagnostics, generated contracts, and validation metadata."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Fix the invalid fields and retry with schema-conformant input."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/frontend-vite/src/libs/problems/MissingCloudflareVitePluginProblem.ts"`; `kind`: `"problem-constructor"`; `line`: `14`; \}\]; `status`: `422`; `title`: `"Validation Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"GENERATION_ERROR"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#generation-error"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/llm-core/src/libs/problems/LlmServiceProblem.ts"`; `kind`: `"problem-constructor"`; `line`: `34`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"gid-core/id-type-only-property"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#gid-core-id-type-only-property"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/gid-core/src/libs/problems/GidProblems.ts"`; `kind`: `"problem-class"`; `line`: `17`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"ValidationError"`; `code`: `"gid-core/invalid-id-prefix"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#gid-core-invalid-id-prefix"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request or generated contract failed schema or semantic validation."`; `operatorAction`: `"Inspect schema diagnostics, generated contracts, and validation metadata."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Fix the invalid fields and retry with schema-conformant input."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/gid-core/src/libs/problems/GidProblems.ts"`; `kind`: `"problem-class"`; `line`: `4`; \}\]; `status`: `422`; `title`: `"Validation Error"`; \}, \{ `category`: `"NotImplemented"`; `code`: `"governance-core/delete-not-supported"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#governance-core-delete-not-supported"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The requested capability is not supported by this runtime or adapter."`; `operatorAction`: `"Check runtime capability declarations and provider maturity documentation."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Use a supported capability or choose an adapter/runtime that provides it."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/governance-core/src/libs/problems/DataGovernanceProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `34`; \}\]; `status`: `501`; `title`: `"Not Implemented"`; \}, \{ `category`: `"NotImplemented"`; `code`: `"governance-core/export-not-supported"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#governance-core-export-not-supported"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The requested capability is not supported by this runtime or adapter."`; `operatorAction`: `"Check runtime capability declarations and provider maturity documentation."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Use a supported capability or choose an adapter/runtime that provides it."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/governance-core/src/libs/problems/DataGovernanceProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `15`; \}\]; `status`: `501`; `title`: `"Not Implemented"`; \}, \{ `category`: `"ValidationError"`; `code`: `"governance-core/resource-validation-failed"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#governance-core-resource-validation-failed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request or generated contract failed schema or semantic validation."`; `operatorAction`: `"Inspect schema diagnostics, generated contracts, and validation metadata."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Fix the invalid fields and retry with schema-conformant input."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/governance-core/src/libs/DataGovernanceResource.ts"`; `kind`: `"problem-constructor"`; `line`: `102`; \}\]; `status`: `422`; `title`: `"Validation Error"`; \}, \{ `category`: `"BusinessRuleViolation"`; `code`: `"governance-core/retention-policy-violation"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#governance-core-retention-policy-violation"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request is syntactically valid but violates a domain rule."`; `operatorAction`: `"Review domain policy, entitlement, quota, and lifecycle rule evidence."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Change the workflow state or request values so the business rule is satisfied."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/governance-core/src/libs/problems/DataGovernanceProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `59`; \}\]; `status`: `422`; `title`: `"Business Rule Violation"`; \}, \{ `category`: `"NotFound"`; `code`: `"GRAPHQL_NOT_FOUND"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#graphql-not-found"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The requested resource or route-visible record does not exist."`; `operatorAction`: `"Confirm tenant scoping, data retention, and backing-store lookup behavior."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Verify the identifier and refresh the resource list before retrying."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/protocols-graphql/src/libs/errors/GraphQLProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `23`; \}\]; `status`: `404`; `title`: `"Not Found"`; \}, \{ `category`: `"NotFound"`; `code`: `"HEALTH_SCORE_NOT_FOUND"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#health-score-not-found"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The requested resource or route-visible record does not exist."`; `operatorAction`: `"Confirm tenant scoping, data retention, and backing-store lookup behavior."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Verify the identifier and refresh the resource list before retrying."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/customer-health-core/src/libs/problems/HealthProblems.ts"`; `kind`: `"problem-class"`; `line`: `4`; \}\]; `status`: `404`; `title`: `"Not Found"`; \}, \{ `category`: `"BadRequest"`; `code`: `"idempotency-core/invalid-key"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#idempotency-core-invalid-key"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The caller sent malformed input or unsupported request options."`; `operatorAction`: `"Inspect validation details and request logs; do not retry unchanged input."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Correct the request input and retry after validation passes."`; \}; `sources`: readonly \[\{ `column`: `11`; `file`: `"packages/idempotency-core/src/libs/problems/IdempotencyProblems.ts"`; `kind`: `"problem-metadata"`; `line`: `53`; \}\]; `status`: `400`; `title`: `"Bad Request"`; \}, \{ `category`: `"BadRequest"`; `code`: `"idempotency-core/invalid-ttl"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#idempotency-core-invalid-ttl"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The caller sent malformed input or unsupported request options."`; `operatorAction`: `"Inspect validation details and request logs; do not retry unchanged input."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Correct the request input and retry after validation passes."`; \}; `sources`: readonly \[\{ `column`: `11`; `file`: `"packages/idempotency-core/src/libs/problems/IdempotencyProblems.ts"`; `kind`: `"problem-metadata"`; `line`: `72`; \}\]; `status`: `400`; `title`: `"Bad Request"`; \}, \{ `category`: `"Conflict"`; `code`: `"idempotency-core/key-conflict"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#idempotency-core-key-conflict"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request conflicts with current state or an idempotency constraint."`; `operatorAction`: `"Inspect concurrent writes, idempotency keys, and uniqueness constraints."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Refresh state, resolve the conflict, and retry with the updated intent."`; \}; `sources`: readonly \[\{ `column`: `11`; `file`: `"packages/idempotency-core/src/libs/problems/IdempotencyProblems.ts"`; `kind`: `"problem-metadata"`; `line`: `37`; \}\]; `status`: `409`; `title`: `"Conflict"`; \}, \{ `category`: `"Conflict"`; `code`: `"idempotency-core/reservation-expired"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#idempotency-core-reservation-expired"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request conflicts with current state or an idempotency constraint."`; `operatorAction`: `"Inspect concurrent writes, idempotency keys, and uniqueness constraints."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Refresh state, resolve the conflict, and retry with the updated intent."`; \}; `sources`: readonly \[\{ `column`: `11`; `file`: `"packages/idempotency-core/src/libs/problems/IdempotencyProblems.ts"`; `kind`: `"problem-metadata"`; `line`: `101`; \}\]; `status`: `409`; `title`: `"Conflict"`; \}, \{ `category`: `"Conflict"`; `code`: `"idempotency-core/reservation-not-found"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#idempotency-core-reservation-not-found"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request conflicts with current state or an idempotency constraint."`; `operatorAction`: `"Inspect concurrent writes, idempotency keys, and uniqueness constraints."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Refresh state, resolve the conflict, and retry with the updated intent."`; \}; `sources`: readonly \[\{ `column`: `11`; `file`: `"packages/idempotency-core/src/libs/problems/IdempotencyProblems.ts"`; `kind`: `"problem-metadata"`; `line`: `87`; \}\]; `status`: `409`; `title`: `"Conflict"`; \}, \{ `category`: `"Conflict"`; `code`: `"idempotency-core/reservation-state"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#idempotency-core-reservation-state"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request conflicts with current state or an idempotency constraint."`; `operatorAction`: `"Inspect concurrent writes, idempotency keys, and uniqueness constraints."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Refresh state, resolve the conflict, and retry with the updated intent."`; \}; `sources`: readonly \[\{ `column`: `11`; `file`: `"packages/idempotency-core/src/libs/problems/IdempotencyProblems.ts"`; `kind`: `"problem-metadata"`; `line`: `120`; \}\]; `status`: `409`; `title`: `"Conflict"`; \}, \{ `category`: `"Forbidden"`; `code`: `"IMPERSONATION_IDENTITY_CONFLICT"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#impersonation-identity-conflict"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The authenticated caller is not allowed to perform the requested action."`; `operatorAction`: `"Review policy, role, tenant, entitlement, and impersonation context."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Request the required permission or choose an allowed action."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/impersonation-core/src/libs/problems/ImpersonationProblems.ts"`; `kind`: `"problem-class"`; `line`: `13`; \}\]; `status`: `403`; `title`: `"Forbidden"`; \}, \{ `category`: `"BadRequest"`; `code`: `"IMPERSONATION_REASON_REQUIRED"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#impersonation-reason-required"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The caller sent malformed input or unsupported request options."`; `operatorAction`: `"Inspect validation details and request logs; do not retry unchanged input."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Correct the request input and retry after validation passes."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/impersonation-core/src/libs/problems/ImpersonationProblems.ts"`; `kind`: `"problem-class"`; `line`: `40`; \}\]; `status`: `400`; `title`: `"Bad Request"`; \}, \{ `category`: `"NotFound"`; `code`: `"IMPERSONATION_SESSION_NOT_FOUND"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#impersonation-session-not-found"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The requested resource or route-visible record does not exist."`; `operatorAction`: `"Confirm tenant scoping, data retention, and backing-store lookup behavior."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Verify the identifier and refresh the resource list before retrying."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/impersonation-core/src/libs/problems/ImpersonationProblems.ts"`; `kind`: `"problem-class"`; `line`: `58`; \}\]; `status`: `404`; `title`: `"Not Found"`; \}, \{ `category`: `"NotFound"`; `code`: `"IMPERSONATION_TARGET_NOT_FOUND"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#impersonation-target-not-found"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The requested resource or route-visible record does not exist."`; `operatorAction`: `"Confirm tenant scoping, data retention, and backing-store lookup behavior."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Verify the identifier and refresh the resource list before retrying."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/impersonation-core/src/libs/problems/ImpersonationProblems.ts"`; `kind`: `"problem-class"`; `line`: `22`; \}\]; `status`: `404`; `title`: `"Not Found"`; \}, \{ `category`: `"NotFound"`; `code`: `"INDEX_NOT_FOUND"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#index-not-found"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The requested resource or route-visible record does not exist."`; `operatorAction`: `"Confirm tenant scoping, data retention, and backing-store lookup behavior."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Verify the identifier and refresh the resource list before retrying."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/search-core/src/libs/problems/SearchProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `57`; \}\]; `status`: `404`; `title`: `"Not Found"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"integrations-posthog/missing-config"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#integrations-posthog-missing-config"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/integrations-posthog/src/libs/problems/PostHogProblems.ts"`; `kind`: `"problem-class"`; `line`: `4`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"BadRequest"`; `code`: `"INVALID_AUTO_JOIN_ROLE"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#invalid-auto-join-role"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The caller sent malformed input or unsupported request options."`; `operatorAction`: `"Inspect validation details and request logs; do not retry unchanged input."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Correct the request input and retry after validation passes."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/invitation-core/src/libs/problems/DomainPolicyProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `18`; \}\]; `status`: `400`; `title`: `"Bad Request"`; \}, \{ `category`: `"BadRequest"`; `code`: `"INVALID_CURSOR"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#invalid-cursor"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The caller sent malformed input or unsupported request options."`; `operatorAction`: `"Inspect validation details and request logs; do not retry unchanged input."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Correct the request input and retry after validation passes."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/pagination-core/src/libs/problems.ts"`; `kind`: `"problem-class"`; `line`: `4`; \}\]; `status`: `400`; `title`: `"Bad Request"`; \}, \{ `category`: `"ValidationError"`; `code`: `"INVALID_INVITATION_EXPIRY_DURATION"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#invalid-invitation-expiry-duration"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request or generated contract failed schema or semantic validation."`; `operatorAction`: `"Inspect schema diagnostics, generated contracts, and validation metadata."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Fix the invalid fields and retry with schema-conformant input."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/invitation-core/src/libs/problems/InvitationProblems.ts"`; `kind`: `"problem-class"`; `line`: `32`; \}\]; `status`: `422`; `title`: `"Validation Error"`; \}, \{ `category`: `"BadRequest"`; `code`: `"INVALID_PAGINATION_DIRECTION"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#invalid-pagination-direction"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The caller sent malformed input or unsupported request options."`; `operatorAction`: `"Inspect validation details and request logs; do not retry unchanged input."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Correct the request input and retry after validation passes."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/pagination-core/src/libs/problems.ts"`; `kind`: `"problem-class"`; `line`: `40`; \}\]; `status`: `400`; `title`: `"Bad Request"`; \}, \{ `category`: `"ValidationError"`; `code`: `"INVALID_RETRY_CONFIGURATION"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#invalid-retry-configuration"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request or generated contract failed schema or semantic validation."`; `operatorAction`: `"Inspect schema diagnostics, generated contracts, and validation metadata."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Fix the invalid fields and retry with schema-conformant input."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/retry-core/src/libs/errors/RetryInfrastructureProblem.ts"`; `kind`: `"problem-class"`; `line`: `52`; \}\]; `status`: `422`; `title`: `"Validation Error"`; \}, \{ `category`: `"BadRequest"`; `code`: `"INVALID_ROLE"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#invalid-role"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The caller sent malformed input or unsupported request options."`; `operatorAction`: `"Inspect validation details and request logs; do not retry unchanged input."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Correct the request input and retry after validation passes."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/membership-core/src/libs/problems/MembershipProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `44`; \}\]; `status`: `400`; `title`: `"Bad Request"`; \}, \{ `category`: `"Conflict"`; `code`: `"INVITATION_ALREADY_ACCEPTED"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#invitation-already-accepted"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request conflicts with current state or an idempotency constraint."`; `operatorAction`: `"Inspect concurrent writes, idempotency keys, and uniqueness constraints."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Refresh state, resolve the conflict, and retry with the updated intent."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/invitation-core/src/libs/problems/InvitationProblems.ts"`; `kind`: `"problem-class"`; `line`: `73`; \}\]; `status`: `409`; `title`: `"Conflict"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"INVITATION_CREATION_FAILED"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#invitation-creation-failed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/invitation-core/src/libs/problems/InvitationProblems.ts"`; `kind`: `"problem-class"`; `line`: `4`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"Forbidden"`; `code`: `"INVITATION_EMAIL_MISMATCH"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#invitation-email-mismatch"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The authenticated caller is not allowed to perform the requested action."`; `operatorAction`: `"Review policy, role, tenant, entitlement, and impersonation context."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Request the required permission or choose an allowed action."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/invitation-core/src/libs/problems/InvitationProblems.ts"`; `kind`: `"problem-class"`; `line`: `84`; \}\]; `status`: `403`; `title`: `"Forbidden"`; \}, \{ `category`: `"Gone"`; `code`: `"INVITATION_EXPIRED"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#invitation-expired"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The requested resource is no longer available through this API surface."`; `operatorAction`: `"Verify lifecycle, migration, deprecation, and retention state."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Stop using the stale reference and follow the replacement flow when available."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/invitation-core/src/libs/problems/InvitationProblems.ts"`; `kind`: `"problem-class"`; `line`: `62`; \}\]; `status`: `410`; `title`: `"Gone"`; \}, \{ `category`: `"Conflict"`; `code`: `"INVITATION_IDEMPOTENCY_CONFLICT"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#invitation-idempotency-conflict"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request conflicts with current state or an idempotency constraint."`; `operatorAction`: `"Inspect concurrent writes, idempotency keys, and uniqueness constraints."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Refresh state, resolve the conflict, and retry with the updated intent."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/invitation-core/src/libs/problems/InvitationProblems.ts"`; `kind`: `"problem-class"`; `line`: `19`; \}\]; `status`: `409`; `title`: `"Conflict"`; \}, \{ `category`: `"Conflict"`; `code`: `"INVITATION_INVALID_STATUS"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#invitation-invalid-status"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request conflicts with current state or an idempotency constraint."`; `operatorAction`: `"Inspect concurrent writes, idempotency keys, and uniqueness constraints."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Refresh state, resolve the conflict, and retry with the updated intent."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/invitation-core/src/libs/problems/InvitationProblems.ts"`; `kind`: `"problem-class"`; `line`: `95`; \}\]; `status`: `409`; `title`: `"Conflict"`; \}, \{ `category`: `"NotFound"`; `code`: `"INVITATION_NOT_FOUND"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#invitation-not-found"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The requested resource or route-visible record does not exist."`; `operatorAction`: `"Confirm tenant scoping, data retention, and backing-store lookup behavior."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Verify the identifier and refresh the resource list before retrying."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/invitation-core/src/libs/problems/InvitationProblems.ts"`; `kind`: `"problem-class"`; `line`: `51`; \}\]; `status`: `404`; `title`: `"Not Found"`; \}, \{ `category`: `"TooManyRequests"`; `code`: `"INVITATION_RATE_LIMIT_EXCEEDED"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#invitation-rate-limit-exceeded"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The caller exceeded a rate, quota, or concurrency limit."`; `operatorAction`: `"Check limiter state, quota configuration, and abuse signals."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Wait for the retry window or reduce request volume."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/invitation-core/src/libs/problems/RateLimitProblems.ts"`; `kind`: `"problem-class"`; `line`: `4`; \}\]; `status`: `429`; `title`: `"Too Many Requests"`; \}, \{ `category`: `"BadRequest"`; `code`: `"invitation-core/batch-size-exceeded"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#invitation-core-batch-size-exceeded"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The caller sent malformed input or unsupported request options."`; `operatorAction`: `"Inspect validation details and request logs; do not retry unchanged input."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Correct the request input and retry after validation passes."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/invitation-core/src/libs/problems/BatchInviteProblems.ts"`; `kind`: `"problem-class"`; `line`: `4`; \}\]; `status`: `400`; `title`: `"Bad Request"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"invitation-drizzle/token-cipher-failed"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#invitation-drizzle-token-cipher-failed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/invitation-drizzle/src/libs/InvitationTokenCipher.ts"`; `kind`: `"problem-constructor"`; `line`: `25`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"LAMBDA_TIMEOUT_GUARD"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#lambda-timeout-guard"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/retry-core/src/libs/errors/RetryInfrastructureProblem.ts"`; `kind`: `"problem-class"`; `line`: `39`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"Forbidden"`; `code`: `"LAST_OWNER"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#last-owner"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The authenticated caller is not allowed to perform the requested action."`; `operatorAction`: `"Review policy, role, tenant, entitlement, and impersonation context."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Request the required permission or choose an allowed action."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/membership-core/src/libs/problems/MembershipProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `31`; \}\]; `status`: `403`; `title`: `"Forbidden"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"lifecycle-core/action-adapter-failed"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#lifecycle-core-action-adapter-failed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/lifecycle-core/src/libs/problems/LifecycleProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `38`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"lifecycle-core/duplicate-rule"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#lifecycle-core-duplicate-rule"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/lifecycle-core/src/libs/problems/LifecycleProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `6`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"Conflict"`; `code`: `"lifecycle-core/monetization-recipe-capability-missing"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#lifecycle-core-monetization-recipe-capability-missing"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request conflicts with current state or an idempotency constraint."`; `operatorAction`: `"Inspect concurrent writes, idempotency keys, and uniqueness constraints."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Refresh state, resolve the conflict, and retry with the updated intent."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/lifecycle-core/src/libs/problems/LifecycleProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `191`; \}\]; `status`: `409`; `title`: `"Conflict"`; \}, \{ `category`: `"ValidationError"`; `code`: `"lifecycle-core/monetization-signal-invalid"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#lifecycle-core-monetization-signal-invalid"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request or generated contract failed schema or semantic validation."`; `operatorAction`: `"Inspect schema diagnostics, generated contracts, and validation metadata."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Fix the invalid fields and retry with schema-conformant input."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/lifecycle-core/src/libs/problems/LifecycleProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `174`; \}\]; `status`: `422`; `title`: `"Validation Error"`; \}, \{ `category`: `"Conflict"`; `code`: `"lifecycle-core/monetization-threshold-claim-unavailable"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#lifecycle-core-monetization-threshold-claim-unavailable"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request conflicts with current state or an idempotency constraint."`; `operatorAction`: `"Inspect concurrent writes, idempotency keys, and uniqueness constraints."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Refresh state, resolve the conflict, and retry with the updated intent."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/lifecycle-core/src/libs/problems/LifecycleProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `209`; \}\]; `status`: `409`; `title`: `"Conflict"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"lifecycle-core/rule-action-contract-mismatch"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#lifecycle-core-rule-action-contract-mismatch"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/lifecycle-core/src/libs/problems/LifecycleProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `156`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"Conflict"`; `code`: `"lifecycle-core/rule-command-conflict"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#lifecycle-core-rule-command-conflict"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request conflicts with current state or an idempotency constraint."`; `operatorAction`: `"Inspect concurrent writes, idempotency keys, and uniqueness constraints."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Refresh state, resolve the conflict, and retry with the updated intent."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/lifecycle-core/src/libs/problems/LifecycleProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `103`; \}\]; `status`: `409`; `title`: `"Conflict"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"lifecycle-core/rule-definition-invalid"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#lifecycle-core-rule-definition-invalid"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/lifecycle-core/src/libs/problems/LifecycleProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `22`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"Conflict"`; `code`: `"lifecycle-core/rule-transition-invalid"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#lifecycle-core-rule-transition-invalid"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request conflicts with current state or an idempotency constraint."`; `operatorAction`: `"Inspect concurrent writes, idempotency keys, and uniqueness constraints."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Refresh state, resolve the conflict, and retry with the updated intent."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/lifecycle-core/src/libs/problems/LifecycleProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `119`; \}\]; `status`: `409`; `title`: `"Conflict"`; \}, \{ `category`: `"Conflict"`; `code`: `"lifecycle-core/rule-version-conflict"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#lifecycle-core-rule-version-conflict"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request conflicts with current state or an idempotency constraint."`; `operatorAction`: `"Inspect concurrent writes, idempotency keys, and uniqueness constraints."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Refresh state, resolve the conflict, and retry with the updated intent."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/lifecycle-core/src/libs/problems/LifecycleProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `85`; \}\]; `status`: `409`; `title`: `"Conflict"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"lifecycle-core/rule-version-definition-invalid"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#lifecycle-core-rule-version-definition-invalid"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/lifecycle-core/src/libs/problems/LifecycleProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `139`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"Conflict"`; `code`: `"lifecycle-core/rule-version-unavailable"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#lifecycle-core-rule-version-unavailable"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request conflicts with current state or an idempotency constraint."`; `operatorAction`: `"Inspect concurrent writes, idempotency keys, and uniqueness constraints."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Refresh state, resolve the conflict, and retry with the updated intent."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/lifecycle-core/src/libs/problems/LifecycleProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `67`; \}\]; `status`: `409`; `title`: `"Conflict"`; \}, \{ `category`: `"NotFound"`; `code`: `"lifecycle-core/rule-version-unknown"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#lifecycle-core-rule-version-unknown"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The requested resource or route-visible record does not exist."`; `operatorAction`: `"Confirm tenant scoping, data retention, and backing-store lookup behavior."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Verify the identifier and refresh the resource list before retrying."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/lifecycle-core/src/libs/problems/LifecycleProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `49`; \}\]; `status`: `404`; `title`: `"Not Found"`; \}, \{ `category`: `"NotFound"`; `code`: `"LLM_PROVIDER_NOT_FOUND"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#llm-provider-not-found"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The requested resource or route-visible record does not exist."`; `operatorAction`: `"Confirm tenant scoping, data retention, and backing-store lookup behavior."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Verify the identifier and refresh the resource list before retrying."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/llm-core/src/libs/problems/LlmProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `9`; \}\]; `status`: `404`; `title`: `"Not Found"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"LLM_SERVICE_ERROR"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#llm-service-error"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/llm-core/src/libs/problems/LlmServiceProblem.ts"`; `kind`: `"problem-constructor"`; `line`: `8`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"BadRequest"`; `code`: `"llm-core/invalid-llm-prompt"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#llm-core-invalid-llm-prompt"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The caller sent malformed input or unsupported request options."`; `operatorAction`: `"Inspect validation details and request logs; do not retry unchanged input."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Correct the request input and retry after validation passes."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/llm-core/src/libs/problems/LlmProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `85`; \}\]; `status`: `400`; `title`: `"Bad Request"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"llm-core/invalid-llm-response"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#llm-core-invalid-llm-response"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/llm-core/src/libs/problems/LlmProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `65`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"llm-core/llm-service-not-initialized"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#llm-core-llm-service-not-initialized"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/llm-core/src/libs/problems/LlmProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `75`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"TooManyRequests"`; `code`: `"llm-core/rate-limit-exceeded"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#llm-core-rate-limit-exceeded"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The caller exceeded a rate, quota, or concurrency limit."`; `operatorAction`: `"Check limiter state, quota configuration, and abuse signals."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Wait for the retry window or reduce request volume."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/llm-core/src/libs/problems/LlmProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `43`; \}\]; `status`: `429`; `title`: `"Too Many Requests"`; \}, \{ `category`: `"Forbidden"`; `code`: `"llm-metering/cost-limit-exceeded"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#llm-metering-cost-limit-exceeded"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The authenticated caller is not allowed to perform the requested action."`; `operatorAction`: `"Review policy, role, tenant, entitlement, and impersonation context."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Request the required permission or choose an allowed action."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/llm-metering/src/libs/problems/LlmMeteringProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `41`; \}\]; `status`: `403`; `title`: `"Forbidden"`; \}, \{ `category`: `"NotFound"`; `code`: `"llm-metering/pricing-not-found"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#llm-metering-pricing-not-found"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The requested resource or route-visible record does not exist."`; `operatorAction`: `"Confirm tenant scoping, data retention, and backing-store lookup behavior."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Verify the identifier and refresh the resource list before retrying."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/llm-metering/src/libs/problems/LlmMeteringProblems.ts"`; `kind`: `"problem-class"`; `line`: `58`; \}\]; `status`: `404`; `title`: `"Not Found"`; \}, \{ `category`: `"Conflict"`; `code`: `"llm-metering/pricing-registry-conflict"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#llm-metering-pricing-registry-conflict"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request conflicts with current state or an idempotency constraint."`; `operatorAction`: `"Inspect concurrent writes, idempotency keys, and uniqueness constraints."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Refresh state, resolve the conflict, and retry with the updated intent."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/llm-metering/src/libs/problems/LlmMeteringProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `71`; \}\]; `status`: `409`; `title`: `"Conflict"`; \}, \{ `category`: `"Forbidden"`; `code`: `"llm-metering/quota-exceeded"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#llm-metering-quota-exceeded"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The authenticated caller is not allowed to perform the requested action."`; `operatorAction`: `"Review policy, role, tenant, entitlement, and impersonation context."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Request the required permission or choose an allowed action."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/llm-metering/src/libs/problems/LlmMeteringProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `24`; \}\]; `status`: `403`; `title`: `"Forbidden"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"llm-metering/record-failed"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#llm-metering-record-failed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/llm-metering/src/libs/problems/LlmMeteringProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `7`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"BadRequest"`; `code`: `"llm-openai/aborted"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#llm-openai-aborted"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The caller sent malformed input or unsupported request options."`; `operatorAction`: `"Inspect validation details and request logs; do not retry unchanged input."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Correct the request input and retry after validation passes."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/llm-openai/src/libs/problems/OpenAiProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `117`; \}\]; `status`: `400`; `title`: `"Bad Request"`; \}, \{ `category`: `"Unauthorized"`; `code`: `"llm-openai/authentication-failed"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#llm-openai-authentication-failed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request did not include valid authentication credentials."`; `operatorAction`: `"Check authentication configuration, token issuer, and clock skew."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Sign in again or provide a valid credential."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/llm-openai/src/libs/problems/OpenAiProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `42`; \}\]; `status`: `401`; `title`: `"Unauthorized"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"llm-openai/invalid-response"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#llm-openai-invalid-response"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/llm-openai/src/libs/problems/OpenAiProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `135`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"llm-openai/missing-config"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#llm-openai-missing-config"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/llm-openai/src/libs/problems/OpenAiProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `24`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"TooManyRequests"`; `code`: `"llm-openai/rate-limited"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#llm-openai-rate-limited"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The caller exceeded a rate, quota, or concurrency limit."`; `operatorAction`: `"Check limiter state, quota configuration, and abuse signals."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Wait for the retry window or reduce request volume."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/llm-openai/src/libs/problems/OpenAiProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `57`; \}\]; `status`: `429`; `title`: `"Too Many Requests"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"llm-openai/retryable-upstream"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#llm-openai-retryable-upstream"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/llm-openai/src/libs/problems/OpenAiProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `72`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"llm-openai/terminal-upstream"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#llm-openai-terminal-upstream"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/llm-openai/src/libs/problems/OpenAiProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `87`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"BadRequest"`; `code`: `"llm-openai/validation-failed"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#llm-openai-validation-failed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The caller sent malformed input or unsupported request options."`; `operatorAction`: `"Inspect validation details and request logs; do not retry unchanged input."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Correct the request input and retry after validation passes."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/llm-openai/src/libs/problems/OpenAiProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `102`; \}\]; `status`: `400`; `title`: `"Bad Request"`; \}, \{ `category`: `"Forbidden"`; `code`: `"MEMBERSHIP_CONSTRAINT"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#membership-constraint"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The authenticated caller is not allowed to perform the requested action."`; `operatorAction`: `"Review policy, role, tenant, entitlement, and impersonation context."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Request the required permission or choose an allowed action."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/membership-core/src/libs/problems/MembershipConstraintProblem.ts"`; `kind`: `"problem-constructor"`; `line`: `9`; \}\]; `status`: `403`; `title`: `"Forbidden"`; \}, \{ `category`: `"NotFound"`; `code`: `"MEMBERSHIP_NOT_FOUND"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#membership-not-found"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The requested resource or route-visible record does not exist."`; `operatorAction`: `"Confirm tenant scoping, data retention, and backing-store lookup behavior."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Verify the identifier and refresh the resource list before retrying."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/membership-core/src/libs/problems/MembershipProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `5`; \}\]; `status`: `404`; `title`: `"Not Found"`; \}, \{ `category`: `"BadRequest"`; `code`: `"meta-vite/server-action-invalid-path"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#meta-vite-server-action-invalid-path"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The caller sent malformed input or unsupported request options."`; `operatorAction`: `"Inspect validation details and request logs; do not retry unchanged input."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Correct the request input and retry after validation passes."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/meta-vite/src/libs/actions/serverActions.ts"`; `kind`: `"problem-class"`; `line`: `80`; \}\]; `status`: `400`; `title`: `"Bad Request"`; \}, \{ `category`: `"NotFound"`; `code`: `"meta-vite/server-action-not-found"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#meta-vite-server-action-not-found"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The requested resource or route-visible record does not exist."`; `operatorAction`: `"Confirm tenant scoping, data retention, and backing-store lookup behavior."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Verify the identifier and refresh the resource list before retrying."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/meta-vite/src/libs/actions/serverActions.ts"`; `kind`: `"problem-class"`; `line`: `66`; \}\]; `status`: `404`; `title`: `"Not Found"`; \}, \{ `category`: `"ValidationError"`; `code`: `"meta-vite/server-action-validation-failed"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#meta-vite-server-action-validation-failed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request or generated contract failed schema or semantic validation."`; `operatorAction`: `"Inspect schema diagnostics, generated contracts, and validation metadata."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Fix the invalid fields and retry with schema-conformant input."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/meta-vite/src/libs/actions/serverActions.ts"`; `kind`: `"problem-class"`; `line`: `94`; \}\]; `status`: `422`; `title`: `"Validation Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"meter/insert-failed"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#meter-insert-failed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `13`; `file`: `"packages/metering-drizzle/src/libs/DrizzleMeterRepository.ts"`; `kind`: `"problem-factory"`; `line`: `146`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"metering-drizzle/migration-query-result-unsupported"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#metering-drizzle-migration-query-result-unsupported"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `9`; `file`: `"packages/metering-drizzle/src/migrations/addUsageEnvelopeFields.ts"`; `kind`: `"problem-factory"`; `line`: `125`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"metering-drizzle/usage-envelope-not-configured"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#metering-drizzle-usage-envelope-not-configured"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/metering-drizzle/src/libs/problems/UsageEnvelopeConfigurationProblem.ts"`; `kind`: `"problem-constructor"`; `line`: `6`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"metering-upstash/missing-config"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#metering-upstash-missing-config"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/metering-upstash/src/libs/problems/UpstashMeteringProblems.ts"`; `kind`: `"problem-class"`; `line`: `4`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"metering/atomic-quota-not-supported"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#metering-atomic-quota-not-supported"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/metering-core/src/libs/problems/AtomicQuotaNotSupportedProblem.ts"`; `kind`: `"problem-class"`; `line`: `4`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"metering/billable-usage-journal-required"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#metering-billable-usage-journal-required"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"A meter declares billing as required, but MeterRegistry validation cannot find a persistent BillableUsageJournal."`; `operatorAction`: `"Configure a persistent BillableUsageJournal before loadAll, lazy meter lookup, or registration validates a billing-required meter."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Do not retry with the same configuration; connect a persistent journal or change the meter billing contract first."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/metering-core/src/libs/problems/BillableUsageJournalRequiredProblem.ts"`; `kind`: `"problem-constructor"`; `line`: `5`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"Conflict"`; `code`: `"metering/duplicate-record"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#metering-duplicate-record"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request conflicts with current state or an idempotency constraint."`; `operatorAction`: `"Inspect concurrent writes, idempotency keys, and uniqueness constraints."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Refresh state, resolve the conflict, and retry with the updated intent."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/metering-core/src/libs/problems/DuplicateRecordProblem.ts"`; `kind`: `"problem-constructor"`; `line`: `5`; \}\]; `status`: `409`; `title`: `"Conflict"`; \}, \{ `category`: `"NotFound"`; `code`: `"metering/invalid-meter"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#metering-invalid-meter"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The requested resource or route-visible record does not exist."`; `operatorAction`: `"Confirm tenant scoping, data retention, and backing-store lookup behavior."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Verify the identifier and refresh the resource list before retrying."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/metering-core/src/libs/problems/InvalidMeterProblem.ts"`; `kind`: `"problem-constructor"`; `line`: `5`; \}\]; `status`: `404`; `title`: `"Not Found"`; \}, \{ `category`: `"ValidationError"`; `code`: `"metering/invalid-meter-dimension"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#metering-invalid-meter-dimension"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request or generated contract failed schema or semantic validation."`; `operatorAction`: `"Inspect schema diagnostics, generated contracts, and validation metadata."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Fix the invalid fields and retry with schema-conformant input."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/metering-core/src/libs/problems/InvalidMeterDimensionProblem.ts"`; `kind`: `"problem-constructor"`; `line`: `6`; \}\]; `status`: `422`; `title`: `"Validation Error"`; \}, \{ `category`: `"ValidationError"`; `code`: `"metering/invalid-usage-envelope"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#metering-invalid-usage-envelope"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request or generated contract failed schema or semantic validation."`; `operatorAction`: `"Inspect schema diagnostics, generated contracts, and validation metadata."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Fix the invalid fields and retry with schema-conformant input."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/metering-core/src/libs/problems/InvalidUsageEnvelopeProblem.ts"`; `kind`: `"problem-constructor"`; `line`: `6`; \}\]; `status`: `422`; `title`: `"Validation Error"`; \}, \{ `category`: `"ValidationError"`; `code`: `"metering/invalid-usage-query"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#metering-invalid-usage-query"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request or generated contract failed schema or semantic validation."`; `operatorAction`: `"Inspect schema diagnostics, generated contracts, and validation metadata."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Fix the invalid fields and retry with schema-conformant input."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/metering-core/src/libs/problems/InvalidUsageQueryProblem.ts"`; `kind`: `"problem-constructor"`; `line`: `6`; \}\]; `status`: `422`; `title`: `"Validation Error"`; \}, \{ `category`: `"TooManyRequests"`; `code`: `"metering/quota-exceeded"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#metering-quota-exceeded"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The caller exceeded a rate, quota, or concurrency limit."`; `operatorAction`: `"Check limiter state, quota configuration, and abuse signals."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Wait for the retry window or reduce request volume."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/metering-core/src/libs/problems/QuotaExceededProblem.ts"`; `kind`: `"problem-constructor"`; `line`: `9`; \}\]; `status`: `429`; `title`: `"Too Many Requests"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"metering/redis-error"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#metering-redis-error"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/metering-core/src/libs/problems/RedisProblem.ts"`; `kind`: `"problem-constructor"`; `line`: `8`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"Conflict"`; `code`: `"metering/transition-conflict"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#metering-transition-conflict"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request conflicts with current state or an idempotency constraint."`; `operatorAction`: `"Inspect concurrent writes, idempotency keys, and uniqueness constraints."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Refresh state, resolve the conflict, and retry with the updated intent."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/metering-core/src/libs/problems/MeteringTransitionProblem.ts"`; `kind`: `"problem-constructor"`; `line`: `5`; \}\]; `status`: `409`; `title`: `"Conflict"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"metrics-billing/metric-dropped"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#metrics-billing-metric-dropped"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Billing metrics could not be recorded because the referenced account, subscription, or plan evidence was missing."`; `operatorAction`: `"Use extensions.reason, tenantId, resourceId, and eventKey to rebuild the missing account, subscription, or plan before replay."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Restore the missing billing state identified by reason/resourceId, then replay the same billing event with the same event key."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/metrics-billing/src/libs/problems/BillingMetricsProblems.ts"`; `kind`: `"problem-class"`; `line`: `17`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"metrics-billing/recording-failed"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#metrics-billing-recording-failed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/metrics-billing/src/libs/problems/BillingMetricsProblems.ts"`; `kind`: `"problem-class"`; `line`: `46`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"BusinessRuleViolation"`; `code`: `"metrics-core/carrying-capacity-simulation-error"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#metrics-core-carrying-capacity-simulation-error"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request is syntactically valid but violates a domain rule."`; `operatorAction`: `"Review domain policy, entitlement, quota, and lifecycle rule evidence."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Change the workflow state or request values so the business rule is satisfied."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/metrics-core/src/libs/problems/MetricsProblems.ts"`; `kind`: `"problem-class"`; `line`: `4`; \}\]; `status`: `422`; `title`: `"Business Rule Violation"`; \}, \{ `category`: `"ValidationError"`; `code`: `"metrics-core/carrying-capacity-tenant-required"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#metrics-core-carrying-capacity-tenant-required"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request or generated contract failed schema or semantic validation."`; `operatorAction`: `"Inspect schema diagnostics, generated contracts, and validation metadata."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Fix the invalid fields and retry with schema-conformant input."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/metrics-core/src/libs/problems/MetricsProblems.ts"`; `kind`: `"problem-class"`; `line`: `12`; \}\]; `status`: `422`; `title`: `"Validation Error"`; \}, \{ `category`: `"ValidationError"`; `code`: `"metrics-core/gross-margin-required"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#metrics-core-gross-margin-required"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request or generated contract failed schema or semantic validation."`; `operatorAction`: `"Inspect schema diagnostics, generated contracts, and validation metadata."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Fix the invalid fields and retry with schema-conformant input."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/metrics-core/src/libs/problems/MetricsProblems.ts"`; `kind`: `"problem-class"`; `line`: `42`; \}\]; `status`: `422`; `title`: `"Validation Error"`; \}, \{ `category`: `"ValidationError"`; `code`: `"metrics-core/invalid-retention-movement"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#metrics-core-invalid-retention-movement"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request or generated contract failed schema or semantic validation."`; `operatorAction`: `"Inspect schema diagnostics, generated contracts, and validation metadata."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Fix the invalid fields and retry with schema-conformant input."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/metrics-core/src/libs/problems/MetricsProblems.ts"`; `kind`: `"problem-class"`; `line`: `30`; \}\]; `status`: `422`; `title`: `"Validation Error"`; \}, \{ `category`: `"ValidationError"`; `code`: `"metrics-core/mixed-currency-mrr"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#metrics-core-mixed-currency-mrr"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request or generated contract failed schema or semantic validation."`; `operatorAction`: `"Inspect schema diagnostics, generated contracts, and validation metadata."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Fix the invalid fields and retry with schema-conformant input."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/metrics-core/src/libs/problems/MetricsProblems.ts"`; `kind`: `"problem-class"`; `line`: `50`; \}\]; `status`: `422`; `title`: `"Validation Error"`; \}, \{ `category`: `"NotImplemented"`; `code`: `"metrics-core/retention-metrics-unavailable"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#metrics-core-retention-metrics-unavailable"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The requested capability is not supported by this runtime or adapter."`; `operatorAction`: `"Check runtime capability declarations and provider maturity documentation."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Use a supported capability or choose an adapter/runtime that provides it."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/metrics-core/src/libs/problems/MetricsProblems.ts"`; `kind`: `"problem-class"`; `line`: `20`; \}\]; `status`: `501`; `title`: `"Not Implemented"`; \}, \{ `category`: `"ValidationError"`; `code`: `"metrics-core/snapshot-tenant-required"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#metrics-core-snapshot-tenant-required"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request or generated contract failed schema or semantic validation."`; `operatorAction`: `"Inspect schema diagnostics, generated contracts, and validation metadata."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Fix the invalid fields and retry with schema-conformant input."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/metrics-core/src/libs/SnapshotScheduler.ts"`; `kind`: `"problem-class"`; `line`: `19`; \}\]; `status`: `422`; `title`: `"Validation Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"MIDDLEWARE_EXECUTION_ERROR"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#middleware-execution-error"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/framework-context/src/libs/problems/MiddlewareProblems.ts"`; `kind`: `"problem-class"`; `line`: `7`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"BadRequest"`; `code`: `"migration-runner/database-url-required"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#migration-runner-database-url-required"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The caller sent malformed input or unsupported request options."`; `operatorAction`: `"Inspect validation details and request logs; do not retry unchanged input."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Correct the request input and retry after validation passes."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/migration-runner/src/libs/problems/DatabaseUrlRequiredProblem.ts"`; `kind`: `"problem-class"`; `line`: `4`; \}\]; `status`: `400`; `title`: `"Bad Request"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"migration-runner/file-load-failed"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#migration-runner-file-load-failed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/migration-runner/src/libs/problems/MigrationFileLoadProblem.ts"`; `kind`: `"problem-class"`; `line`: `5`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"Conflict"`; `code`: `"migration-runner/history-drift"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#migration-runner-history-drift"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Recorded migration history no longer matches the available migration files by stable id and name."`; `operatorAction`: `"Compare the checkpoint rows with version-controlled migration files, restore missing or renamed files when possible, and repair history only after verifying the deployed schema."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Restore the original migration file identity or ask an operator to perform an explicitly verified history repair."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/migration-runner/src/libs/problems/MigrationHistoryDriftProblem.ts"`; `kind`: `"problem-class"`; `line`: `16`; \}\]; `status`: `409`; `title`: `"Conflict"`; \}, \{ `category`: `"BadRequest"`; `code`: `"migration-runner/invalid-count"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#migration-runner-invalid-count"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The caller sent malformed input or unsupported request options."`; `operatorAction`: `"Inspect validation details and request logs; do not retry unchanged input."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Correct the request input and retry after validation passes."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/migration-runner/src/libs/problems/InvalidMigrationCountProblem.ts"`; `kind`: `"problem-class"`; `line`: `4`; \}\]; `status`: `400`; `title`: `"Bad Request"`; \}, \{ `category`: `"ValidationError"`; `code`: `"migration-runner/missing-down-function"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#migration-runner-missing-down-function"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request or generated contract failed schema or semantic validation."`; `operatorAction`: `"Inspect schema diagnostics, generated contracts, and validation metadata."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Fix the invalid fields and retry with schema-conformant input."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/migration-runner/src/libs/problems/MissingDownFunctionProblem.ts"`; `kind`: `"problem-class"`; `line`: `4`; \}\]; `status`: `422`; `title`: `"Validation Error"`; \}, \{ `category`: `"ValidationError"`; `code`: `"migration-runner/missing-up-function"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#migration-runner-missing-up-function"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request or generated contract failed schema or semantic validation."`; `operatorAction`: `"Inspect schema diagnostics, generated contracts, and validation metadata."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Fix the invalid fields and retry with schema-conformant input."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/migration-runner/src/libs/problems/MissingUpFunctionProblem.ts"`; `kind`: `"problem-class"`; `line`: `4`; \}\]; `status`: `422`; `title`: `"Validation Error"`; \}, \{ `category`: `"ValidationError"`; `code`: `"migration-runner/transaction-required"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#migration-runner-transaction-required"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request or generated contract failed schema or semantic validation."`; `operatorAction`: `"Inspect schema diagnostics, generated contracts, and validation metadata."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Fix the invalid fields and retry with schema-conformant input."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/migration-runner/src/libs/problems/MigrationTransactionRequiredProblem.ts"`; `kind`: `"problem-class"`; `line`: `4`; \}\]; `status`: `422`; `title`: `"Validation Error"`; \}, \{ `category`: `"BadRequest"`; `code`: `"migration-runner/unsupported-dialect"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#migration-runner-unsupported-dialect"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The caller sent malformed input or unsupported request options."`; `operatorAction`: `"Inspect validation details and request logs; do not retry unchanged input."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Correct the request input and retry after validation passes."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/migration-runner/src/libs/problems/UnsupportedDialectProblem.ts"`; `kind`: `"problem-class"`; `line`: `4`; \}\]; `status`: `400`; `title`: `"Bad Request"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"migration-runner/unsupported-query-result"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#migration-runner-unsupported-query-result"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/migration-runner/src/libs/problems/UnsupportedMigrationQueryResultProblem.ts"`; `kind`: `"problem-class"`; `line`: `11`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"BadRequest"`; `code`: `"MISSING_TENANT"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#missing-tenant"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The caller sent malformed input or unsupported request options."`; `operatorAction`: `"Inspect validation details and request logs; do not retry unchanged input."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Correct the request input and retry after validation passes."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/search-core/src/libs/problems/SearchProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `5`; \}\]; `status`: `400`; `title`: `"Bad Request"`; \}, \{ `category`: `"NotFound"`; `code`: `"MODEL_NOT_FOUND"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#model-not-found"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The requested resource or route-visible record does not exist."`; `operatorAction`: `"Confirm tenant scoping, data retention, and backing-store lookup behavior."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Verify the identifier and refresh the resource list before retrying."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/llm-core/src/libs/problems/LlmServiceProblem.ts"`; `kind`: `"problem-constructor"`; `line`: `25`; \}\]; `status`: `404`; `title`: `"Not Found"`; \}, \{ `category`: `"Forbidden"`; `code`: `"NESTED_IMPERSONATION_NOT_ALLOWED"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#nested-impersonation-not-allowed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The authenticated caller is not allowed to perform the requested action."`; `operatorAction`: `"Review policy, role, tenant, entitlement, and impersonation context."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Request the required permission or choose an allowed action."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/impersonation-core/src/libs/problems/ImpersonationProblems.ts"`; `kind`: `"problem-class"`; `line`: `31`; \}\]; `status`: `403`; `title`: `"Forbidden"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"notifications-core/default-provider-conflict"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#notifications-core-default-provider-conflict"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/notifications-core/src/libs/problems/NotificationProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `80`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"notifications-core/delivery-failed"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#notifications-core-delivery-failed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/notifications-core/src/libs/problems/NotificationProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `169`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"ValidationError"`; `code`: `"notifications-core/idempotency-key-required"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#notifications-core-idempotency-key-required"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request or generated contract failed schema or semantic validation."`; `operatorAction`: `"Inspect schema diagnostics, generated contracts, and validation metadata."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Fix the invalid fields and retry with schema-conformant input."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/notifications-core/src/libs/problems/NotificationProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `241`; \}\]; `status`: `422`; `title`: `"Validation Error"`; \}, \{ `category`: `"ValidationError"`; `code`: `"notifications-core/outbox-idempotency-mismatch"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#notifications-core-outbox-idempotency-mismatch"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request or generated contract failed schema or semantic validation."`; `operatorAction`: `"Inspect schema diagnostics, generated contracts, and validation metadata."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Fix the invalid fields and retry with schema-conformant input."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/notifications-core/src/libs/problems/NotificationProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `257`; \}\]; `status`: `422`; `title`: `"Validation Error"`; \}, \{ `category`: `"ValidationError"`; `code`: `"notifications-core/preference-channel-mismatch"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#notifications-core-preference-channel-mismatch"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request or generated contract failed schema or semantic validation."`; `operatorAction`: `"Inspect schema diagnostics, generated contracts, and validation metadata."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Fix the invalid fields and retry with schema-conformant input."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/notifications-core/src/libs/problems/NotificationProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `224`; \}\]; `status`: `422`; `title`: `"Validation Error"`; \}, \{ `category`: `"ValidationError"`; `code`: `"notifications-core/preference-context-required"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#notifications-core-preference-context-required"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request or generated contract failed schema or semantic validation."`; `operatorAction`: `"Inspect schema diagnostics, generated contracts, and validation metadata."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Fix the invalid fields and retry with schema-conformant input."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/notifications-core/src/libs/problems/NotificationProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `208`; \}\]; `status`: `422`; `title`: `"Validation Error"`; \}, \{ `category`: `"BusinessRuleViolation"`; `code`: `"notifications-core/preference-denied"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#notifications-core-preference-denied"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request is syntactically valid but violates a domain rule."`; `operatorAction`: `"Review domain policy, entitlement, quota, and lifecycle rule evidence."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Change the workflow state or request values so the business rule is satisfied."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/notifications-core/src/libs/problems/NotificationProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `186`; \}\]; `status`: `422`; `title`: `"Business Rule Violation"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"notifications-core/provider-already-registered"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#notifications-core-provider-already-registered"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/notifications-core/src/libs/problems/NotificationProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `64`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"notifications-core/provider-channel-mismatch"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#notifications-core-provider-channel-mismatch"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/notifications-core/src/libs/problems/NotificationProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `102`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"notifications-core/provider-idempotency-unsupported"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#notifications-core-provider-idempotency-unsupported"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/notifications-core/src/libs/problems/NotificationProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `136`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"notifications-core/provider-not-configured"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#notifications-core-provider-not-configured"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/notifications-core/src/libs/problems/NotificationProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `32`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"notifications-core/provider-not-found"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#notifications-core-provider-not-found"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/notifications-core/src/libs/problems/NotificationProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `120`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"notifications-core/provider-not-registered"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#notifications-core-provider-not-registered"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/notifications-core/src/libs/problems/NotificationProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `48`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"notifications-core/send-max-attempts-invalid"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#notifications-core-send-max-attempts-invalid"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/notifications-core/src/libs/problems/NotificationProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `153`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"Conflict"`; `code`: `"notifications-core/template-already-registered"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#notifications-core-template-already-registered"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request conflicts with current state or an idempotency constraint."`; `operatorAction`: `"Inspect concurrent writes, idempotency keys, and uniqueness constraints."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Refresh state, resolve the conflict, and retry with the updated intent."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/notifications-core/src/libs/problems/NotificationProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `273`; \}\]; `status`: `409`; `title`: `"Conflict"`; \}, \{ `category`: `"NotFound"`; `code`: `"notifications-core/template-not-found"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#notifications-core-template-not-found"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The requested resource or route-visible record does not exist."`; `operatorAction`: `"Confirm tenant scoping, data retention, and backing-store lookup behavior."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Verify the identifier and refresh the resource list before retrying."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/notifications-core/src/libs/problems/NotificationProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `291`; \}\]; `status`: `404`; `title`: `"Not Found"`; \}, \{ `category`: `"ValidationError"`; `code`: `"notifications-core/template-variables-invalid"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#notifications-core-template-variables-invalid"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request or generated contract failed schema or semantic validation."`; `operatorAction`: `"Inspect schema diagnostics, generated contracts, and validation metadata."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Fix the invalid fields and retry with schema-conformant input."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/notifications-core/src/libs/problems/NotificationProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `310`; \}\]; `status`: `422`; `title`: `"Validation Error"`; \}, \{ `category`: `"Conflict"`; `code`: `"notifications-resend/idempotency-conflict"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#notifications-resend-idempotency-conflict"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Resend rejected reuse of an idempotency key for a different send request."`; `operatorAction`: `"Audit callers so each business send intent has one stable idempotency key."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Replay the original payload with the same key or use a new key for a changed send intent."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/notifications-resend/src/libs/problems/ResendNotificationProblem.ts"`; `kind`: `"problem-constructor"`; `line`: `54`; \}\]; `status`: `409`; `title`: `"Conflict"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"notifications-resend/missing-config"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#notifications-resend-missing-config"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Required Resend configuration is absent or blank before provider readiness can be proven."`; `operatorAction`: `"Check deployment env/config injection and verify diagnostics do not expose the raw key."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Configure RESEND_API_KEY and a verified default sender, then rerun diagnostics."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/notifications-resend/src/libs/problems/ResendNotificationProblem.ts"`; `kind`: `"problem-constructor"`; `line`: `19`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"notifications-resend/retryable-upstream"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#notifications-resend-retryable-upstream"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Resend returned a transient status, rate limit, or network timeout."`; `operatorAction`: `"Check Resend status, rate limits, and retry-after/upstream status in telemetry."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry with the same idempotency key when the send intent is unchanged."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/notifications-resend/src/libs/problems/ResendNotificationProblem.ts"`; `kind`: `"problem-constructor"`; `line`: `65`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"notifications-resend/terminal-upstream"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#notifications-resend-terminal-upstream"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Resend rejected the request with a non-retryable upstream failure."`; `operatorAction`: `"Inspect redacted upstream code/status and fix provider configuration before retrying."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Do not retry unchanged input; correct the API key, domain, sender verification, or request content."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/notifications-resend/src/libs/problems/ResendNotificationProblem.ts"`; `kind`: `"problem-constructor"`; `line`: `76`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"ValidationError"`; `code`: `"notifications-resend/validation-failed"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#notifications-resend-validation-failed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request or generated contract failed schema or semantic validation."`; `operatorAction`: `"Inspect schema diagnostics, generated contracts, and validation metadata."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Fix the invalid fields and retry with schema-conformant input."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/notifications-resend/src/libs/problems/ResendNotificationProblem.ts"`; `kind`: `"problem-constructor"`; `line`: `40`; \}\]; `status`: `422`; `title`: `"Validation Error"`; \}, \{ `category`: `"Unauthorized"`; `code`: `"onboarding/context-required"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#onboarding-context-required"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request did not include valid authentication credentials."`; `operatorAction`: `"Check authentication configuration, token issuer, and clock skew."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Sign in again or provide a valid credential."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/onboarding-core/src/libs/problems/OnboardingProblems.ts"`; `kind`: `"problem-class"`; `line`: `29`; \}\]; `status`: `401`; `title`: `"Unauthorized"`; \}, \{ `category`: `"NotFound"`; `code`: `"onboarding/definition-not-found"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#onboarding-definition-not-found"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The requested resource or route-visible record does not exist."`; `operatorAction`: `"Confirm tenant scoping, data retention, and backing-store lookup behavior."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Verify the identifier and refresh the resource list before retrying."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/onboarding-core/src/libs/problems/OnboardingProblems.ts"`; `kind`: `"problem-class"`; `line`: `7`; \}\]; `status`: `404`; `title`: `"Not Found"`; \}, \{ `category`: `"NotFound"`; `code`: `"onboarding/step-not-found"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#onboarding-step-not-found"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The requested resource or route-visible record does not exist."`; `operatorAction`: `"Confirm tenant scoping, data retention, and backing-store lookup behavior."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Verify the identifier and refresh the resource list before retrying."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/onboarding-core/src/libs/problems/OnboardingProblems.ts"`; `kind`: `"problem-class"`; `line`: `18`; \}\]; `status`: `404`; `title`: `"Not Found"`; \}, \{ `category`: `"ValidationError"`; `code`: `"openapi-spec/controller-typescript-diagnostics"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#openapi-spec-controller-typescript-diagnostics"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request or generated contract failed schema or semantic validation."`; `operatorAction`: `"Inspect schema diagnostics, generated contracts, and validation metadata."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Fix the invalid fields and retry with schema-conformant input."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/openapi-spec/src/libs/loadControllers.ts"`; `kind`: `"problem-constructor"`; `line`: `70`; \}\]; `status`: `422`; `title`: `"Validation Error"`; \}, \{ `category`: `"ValidationError"`; `code`: `"openapi-spec/invalid-contract"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#openapi-spec-invalid-contract"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request or generated contract failed schema or semantic validation."`; `operatorAction`: `"Inspect schema diagnostics, generated contracts, and validation metadata."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Fix the invalid fields and retry with schema-conformant input."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/openapi-spec/src/libs/emitOpenAPI.ts"`; `kind`: `"problem-constructor"`; `line`: `106`; \}\]; `status`: `422`; `title`: `"Validation Error"`; \}, \{ `category`: `"BadRequest"`; `code`: `"openapi-spec/no-rest-controllers-found"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#openapi-spec-no-rest-controllers-found"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The caller sent malformed input or unsupported request options."`; `operatorAction`: `"Inspect validation details and request logs; do not retry unchanged input."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Correct the request input and retry after validation passes."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/openapi-spec/src/libs/loadControllers.ts"`; `kind`: `"problem-constructor"`; `line`: `31`; \}\]; `status`: `400`; `title`: `"Bad Request"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"OTLP_ENDPOINT_REQUIRED"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#otlp-endpoint-required"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/telemetry-sdk-node/src/libs/problems/TelemetryProblems.ts"`; `kind`: `"problem-class"`; `line`: `20`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"outbox-core/dispatch-failed"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#outbox-core-dispatch-failed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/outbox-core/src/libs/problems/OutboxProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `86`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"outbox-core/failure-metadata-missing"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#outbox-core-failure-metadata-missing"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"A dispatcher attempted to mark an outbox record failed without the required retry metadata extensions."`; `operatorAction`: `"Audit dispatcher error mapping so every failure path preserves attempt, retryability, terminal state, and failedAt metadata."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Abort the dispatch attempt and pass an OutboxDispatchProblem or equivalent Problem with outbox retry metadata."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/outbox-core/src/libs/problems/OutboxProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `116`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"Conflict"`; `code`: `"outbox-core/record-id-conflict"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#outbox-core-record-id-conflict"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"A caller tried to create an outbox record with an explicit id that already belongs to another idempotency scope."`; `operatorAction`: `"Inspect the producer id/idempotency assignment path and remove any shared id generator or manual id reuse."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Reuse the original idempotency key for the same intent or choose a new record id for a different intent."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/outbox-core/src/libs/problems/OutboxProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `103`; \}\]; `status`: `409`; `title`: `"Conflict"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"outbox-core/unit-of-work-context-invalid"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#outbox-core-unit-of-work-context-invalid"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"An outbox write received a Unit of Work context that was missing, malformed, or created by another store instance."`; `operatorAction`: `"Check transaction boundary wiring so repository and outbox writes share the same store-owned Unit of Work client."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Abort the write and use the context supplied by the active TransactionalOutboxStore.runInUnitOfWork callback."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/outbox-core/src/libs/problems/OutboxProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `129`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"Forbidden"`; `code`: `"OWNERSHIP_TRANSFER_REQUIRED"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#ownership-transfer-required"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The authenticated caller is not allowed to perform the requested action."`; `operatorAction`: `"Review policy, role, tenant, entitlement, and impersonation context."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Request the required permission or choose an allowed action."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/membership-core/src/libs/problems/MembershipProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `65`; \}\]; `status`: `403`; `title`: `"Forbidden"`; \}, \{ `category`: `"BadRequest"`; `code`: `"problems-core/invalid-extensions"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#problems-core-invalid-extensions"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The caller sent malformed input or unsupported request options."`; `operatorAction`: `"Inspect validation details and request logs; do not retry unchanged input."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Correct the request input and retry after validation passes."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/problems-core/src/libs/problems/InvalidExtensionsProblem.ts"`; `kind`: `"problem-class"`; `line`: `5`; \}\]; `status`: `400`; `title`: `"Bad Request"`; \}, \{ `category`: `"BadRequest"`; `code`: `"problems-core/parse-error"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#problems-core-parse-error"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The caller sent malformed input or unsupported request options."`; `operatorAction`: `"Inspect validation details and request logs; do not retry unchanged input."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Correct the request input and retry after validation passes."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/problems-core/src/libs/problems/ProblemDetailsParseProblem.ts"`; `kind`: `"problem-class"`; `line`: `5`; \}\]; `status`: `400`; `title`: `"Bad Request"`; \}, \{ `category`: `"ValidationError"`; `code`: `"problems-core/problem-registry-invalid"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#problems-core-problem-registry-invalid"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request or generated contract failed schema or semantic validation."`; `operatorAction`: `"Inspect schema diagnostics, generated contracts, and validation metadata."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Fix the invalid fields and retry with schema-conformant input."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/problems-core/src/libs/ProblemRegistry.ts"`; `kind`: `"problem-constructor"`; `line`: `210`; \}\]; `status`: `422`; `title`: `"Validation Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"problems-core/unhandled-category"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#problems-core-unhandled-category"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/problems-core/src/libs/ProblemCategoryMapper.ts"`; `kind`: `"problem-class"`; `line`: `19`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"ValidationError"`; `code`: `"protocols-core/contract-graph-diagnostics"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#protocols-core-contract-graph-diagnostics"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request or generated contract failed schema or semantic validation."`; `operatorAction`: `"Inspect schema diagnostics, generated contracts, and validation metadata."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Fix the invalid fields and retry with schema-conformant input."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/protocols-core/src/libs/ContractGraph.ts"`; `kind`: `"problem-constructor"`; `line`: `160`; \}\]; `status`: `422`; `title`: `"Validation Error"`; \}, \{ `category`: `"BadRequest"`; `code`: `"protocols-graphql/auth-invalid-header-format"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#protocols-graphql-auth-invalid-header-format"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The caller sent malformed input or unsupported request options."`; `operatorAction`: `"Inspect validation details and request logs; do not retry unchanged input."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Correct the request input and retry after validation passes."`; \}; `sources`: readonly \[\{ `column`: `13`; `file`: `"packages/protocols-graphql/src/libs/guards/AuthGuard.ts"`; `kind`: `"problem-factory"`; `line`: `71`; \}\]; `status`: `400`; `title`: `"Bad Request"`; \}, \{ `category`: `"BadRequest"`; `code`: `"protocols-graphql/auth-invalid-request"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#protocols-graphql-auth-invalid-request"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The caller sent malformed input or unsupported request options."`; `operatorAction`: `"Inspect validation details and request logs; do not retry unchanged input."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Correct the request input and retry after validation passes."`; \}; `sources`: readonly \[\{ `column`: `13`; `file`: `"packages/protocols-graphql/src/libs/guards/AuthGuard.ts"`; `kind`: `"problem-factory"`; `line`: `54`; \}\]; `status`: `400`; `title`: `"Bad Request"`; \}, \{ `category`: `"Unauthorized"`; `code`: `"protocols-graphql/auth-invalid-token"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#protocols-graphql-auth-invalid-token"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request did not include valid authentication credentials."`; `operatorAction`: `"Check authentication configuration, token issuer, and clock skew."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Sign in again or provide a valid credential."`; \}; `sources`: readonly \[\{ `column`: `10`; `file`: `"packages/protocols-graphql/src/libs/guards/AuthGuard.ts"`; `kind`: `"problem-factory"`; `line`: `14`; \}\]; `status`: `401`; `title`: `"Unauthorized"`; \}, \{ `category`: `"Unauthorized"`; `code`: `"protocols-graphql/auth-missing-header"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#protocols-graphql-auth-missing-header"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request did not include valid authentication credentials."`; `operatorAction`: `"Check authentication configuration, token issuer, and clock skew."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Sign in again or provide a valid credential."`; \}; `sources`: readonly \[\{ `column`: `13`; `file`: `"packages/protocols-graphql/src/libs/guards/AuthGuard.ts"`; `kind`: `"problem-factory"`; `line`: `63`; \}\]; `status`: `401`; `title`: `"Unauthorized"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"protocols-graphql/auth-verifier-unavailable"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#protocols-graphql-auth-verifier-unavailable"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `13`; `file`: `"packages/protocols-graphql/src/libs/guards/AuthGuard.ts"`; `kind`: `"problem-factory"`; `line`: `97`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"Forbidden"`; `code`: `"protocols-graphql/guard-denied"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#protocols-graphql-guard-denied"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The authenticated caller is not allowed to perform the requested action."`; `operatorAction`: `"Review policy, role, tenant, entitlement, and impersonation context."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Request the required permission or choose an allowed action."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/protocols-graphql/src/libs/problems/GuardProblems.ts"`; `kind`: `"problem-class"`; `line`: `4`; \}\]; `status`: `403`; `title`: `"Forbidden"`; \}, \{ `category`: `"BadRequest"`; `code`: `"protocols-rest/auth-invalid-header-format"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#protocols-rest-auth-invalid-header-format"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The caller sent malformed input or unsupported request options."`; `operatorAction`: `"Inspect validation details and request logs; do not retry unchanged input."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Correct the request input and retry after validation passes."`; \}; `sources`: readonly \[\{ `column`: `13`; `file`: `"packages/protocols-rest/src/libs/guards/AuthGuard.ts"`; `kind`: `"problem-factory"`; `line`: `77`; \}\]; `status`: `400`; `title`: `"Bad Request"`; \}, \{ `category`: `"BadRequest"`; `code`: `"protocols-rest/auth-invalid-request"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#protocols-rest-auth-invalid-request"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The caller sent malformed input or unsupported request options."`; `operatorAction`: `"Inspect validation details and request logs; do not retry unchanged input."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Correct the request input and retry after validation passes."`; \}; `sources`: readonly \[\{ `column`: `13`; `file`: `"packages/protocols-rest/src/libs/guards/AuthGuard.ts"`; `kind`: `"problem-factory"`; `line`: `59`; \}\]; `status`: `400`; `title`: `"Bad Request"`; \}, \{ `category`: `"Unauthorized"`; `code`: `"protocols-rest/auth-invalid-token"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#protocols-rest-auth-invalid-token"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request did not include valid authentication credentials."`; `operatorAction`: `"Check authentication configuration, token issuer, and clock skew."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Sign in again or provide a valid credential."`; \}; `sources`: readonly \[\{ `column`: `10`; `file`: `"packages/protocols-rest/src/libs/guards/AuthGuard.ts"`; `kind`: `"problem-factory"`; `line`: `15`; \}\]; `status`: `401`; `title`: `"Unauthorized"`; \}, \{ `category`: `"Unauthorized"`; `code`: `"protocols-rest/auth-missing-header"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#protocols-rest-auth-missing-header"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request did not include valid authentication credentials."`; `operatorAction`: `"Check authentication configuration, token issuer, and clock skew."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Sign in again or provide a valid credential."`; \}; `sources`: readonly \[\{ `column`: `13`; `file`: `"packages/protocols-rest/src/libs/guards/AuthGuard.ts"`; `kind`: `"problem-factory"`; `line`: `69`; \}\]; `status`: `401`; `title`: `"Unauthorized"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"protocols-rest/auth-verifier-unavailable"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#protocols-rest-auth-verifier-unavailable"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `13`; `file`: `"packages/protocols-rest/src/libs/guards/AuthGuard.ts"`; `kind`: `"problem-factory"`; `line`: `102`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"protocols-rest/duplicate-parameter-index"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#protocols-rest-duplicate-parameter-index"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `13`; `file`: `"packages/protocols-rest/src/libs/metadata/MetadataReader.ts"`; `kind`: `"problem-factory"`; `line`: `48`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"ValidationError"`; `code`: `"protocols-rest/request-validation-failed"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#protocols-rest-request-validation-failed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request or generated contract failed schema or semantic validation."`; `operatorAction`: `"Inspect schema diagnostics, generated contracts, and validation metadata."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Fix the invalid fields and retry with schema-conformant input."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/protocols-rest/src/libs/validators/ValidationProblem.ts"`; `kind`: `"problem-class"`; `line`: `31`; \}\]; `status`: `422`; `title`: `"Validation Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"protocols-rest/response-validation-failed"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#protocols-rest-response-validation-failed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/protocols-rest/src/libs/validators/ValidationProblem.ts"`; `kind`: `"problem-class"`; `line`: `54`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"ValidationError"`; `code`: `"protocols-rest/validation-failed"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#protocols-rest-validation-failed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request or generated contract failed schema or semantic validation."`; `operatorAction`: `"Inspect schema diagnostics, generated contracts, and validation metadata."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Fix the invalid fields and retry with schema-conformant input."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/protocols-rest/src/libs/validators/ValidationProblem.ts"`; `kind`: `"problem-class"`; `line`: `12`; \}\]; `status`: `422`; `title`: `"Validation Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"protocols-trpc/route-handler-not-callable"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#protocols-trpc-route-handler-not-callable"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/protocols-trpc/src/libs/createTrpcRouter.ts"`; `kind`: `"problem-class"`; `line`: `20`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"BadRequest"`; `code`: `"PUBLIC_EMAIL_DOMAIN_NOT_ALLOWED"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#public-email-domain-not-allowed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The caller sent malformed input or unsupported request options."`; `operatorAction`: `"Inspect validation details and request logs; do not retry unchanged input."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Correct the request input and retry after validation passes."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/invitation-core/src/libs/problems/DomainPolicyProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `5`; \}\]; `status`: `400`; `title`: `"Bad Request"`; \}, \{ `category`: `"TooManyRequests"`; `code`: `"RATE_LIMIT_EXCEEDED"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#rate-limit-exceeded"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The caller exceeded a rate, quota, or concurrency limit."`; `operatorAction`: `"Check limiter state, quota configuration, and abuse signals."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Wait for the retry window or reduce request volume."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/ratelimit-core/src/libs/problems/RateLimitExceededProblem.ts"`; `kind`: `"problem-constructor"`; `line`: `15`; \}\]; `status`: `429`; `title`: `"Too Many Requests"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"RATE_LIMIT_KEY_BUILDER_ERROR"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#rate-limit-key-builder-error"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/ratelimit-core/src/libs/problems/RateLimitConfigProblems.ts"`; `kind`: `"problem-class"`; `line`: `4`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"RATE_LIMIT_REFUND_UNSUPPORTED"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#rate-limit-refund-unsupported"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/ratelimit-core/src/libs/problems/RateLimitConfigProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `25`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"BadRequest"`; `code`: `"RATE_LIMIT_WINDOW_ERROR"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#rate-limit-window-error"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The caller sent malformed input or unsupported request options."`; `operatorAction`: `"Inspect validation details and request logs; do not retry unchanged input."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Correct the request input and retry after validation passes."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/ratelimit-core/src/libs/problems/RateLimitConfigProblems.ts"`; `kind`: `"problem-class"`; `line`: `14`; \}\]; `status`: `400`; `title`: `"Bad Request"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"ratelimit-upstash/invalid-policy"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#ratelimit-upstash-invalid-policy"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/ratelimit-upstash/src/libs/problems/RateLimitUpstashProblems.ts"`; `kind`: `"problem-class"`; `line`: `7`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"ratelimit-upstash/missing-config"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#ratelimit-upstash-missing-config"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/ratelimit-upstash/src/libs/problems/RateLimitUpstashProblems.ts"`; `kind`: `"problem-class"`; `line`: `21`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"repository-core/batch-loader-factory-not-registered"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#repository-core-batch-loader-factory-not-registered"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/repository-core/src/libs/problems/BatchLoadProblems.ts"`; `kind`: `"problem-class"`; `line`: `4`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"repository-core/batch-loader-factory-resolution-failed"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#repository-core-batch-loader-factory-resolution-failed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/repository-core/src/libs/problems/BatchLoadProblems.ts"`; `kind`: `"problem-class"`; `line`: `17`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"repository-core/batch-loader-scope-collision"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#repository-core-batch-loader-scope-collision"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/repository-core/src/libs/problems/BatchLoadProblems.ts"`; `kind`: `"problem-class"`; `line`: `29`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"RESEND_NOTIFICATION_FAILED"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#resend-notification-failed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/notifications-resend/src/libs/problems/ResendNotificationProblem.ts"`; `kind`: `"problem-constructor"`; `line`: `87`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"RETRY_ABORTED"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#retry-aborted"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/retry-core/src/libs/errors/RetryAbortedProblem.ts"`; `kind`: `"problem-class"`; `line`: `7`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"RETRY_CIRCUIT_BREAKER_INVALID_STATE"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#retry-circuit-breaker-invalid-state"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/retry-core/src/libs/errors/RetryInfrastructureProblem.ts"`; `kind`: `"problem-class"`; `line`: `13`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"RETRY_CIRCUIT_BREAKER_LOCK_FAILED"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#retry-circuit-breaker-lock-failed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/retry-core/src/libs/errors/RetryInfrastructureProblem.ts"`; `kind`: `"problem-class"`; `line`: `26`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"RETRY_EXHAUSTED"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#retry-exhausted"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/retry-core/src/libs/errors/RetryExhaustedProblem.ts"`; `kind`: `"problem-class"`; `line`: `7`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"retry-core/circuit-breaker-unexpected-state"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#retry-core-circuit-breaker-unexpected-state"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/retry-core/src/libs/problems/CircuitBreakerProblems.ts"`; `kind`: `"problem-class"`; `line`: `7`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"retry-core/success-hook-failed"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#retry-core-success-hook-failed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The business callback completed successfully, but its onSuccess observation hook failed afterward."`; `operatorAction`: `"Inspect the original cause and repair the named onSuccess listener or telemetry path without replaying the completed callback."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Do not repeat the business operation from this failure; report the hook failure while preserving the successful callback outcome."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/retry-core/src/libs/errors/RetryInfrastructureProblem.ts"`; `kind`: `"problem-class"`; `line`: `75`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"Forbidden"`; `code`: `"ROLE_HIERARCHY_VIOLATION"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#role-hierarchy-violation"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The authenticated caller is not allowed to perform the requested action."`; `operatorAction`: `"Review policy, role, tenant, entitlement, and impersonation context."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Request the required permission or choose an allowed action."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/membership-core/src/libs/problems/MembershipProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `52`; \}\]; `status`: `403`; `title`: `"Forbidden"`; \}, \{ `category`: `"ValidationError"`; `code`: `"rpc-codegen/controller-typescript-diagnostics"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#rpc-codegen-controller-typescript-diagnostics"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request or generated contract failed schema or semantic validation."`; `operatorAction`: `"Inspect schema diagnostics, generated contracts, and validation metadata."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Fix the invalid fields and retry with schema-conformant input."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/rpc-codegen/src/libs/loadRoutes.ts"`; `kind`: `"problem-constructor"`; `line`: `75`; \}\]; `status`: `422`; `title`: `"Validation Error"`; \}, \{ `category`: `"ValidationError"`; `code`: `"rpc-codegen/invalid-contract"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#rpc-codegen-invalid-contract"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request or generated contract failed schema or semantic validation."`; `operatorAction`: `"Inspect schema diagnostics, generated contracts, and validation metadata."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Fix the invalid fields and retry with schema-conformant input."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/rpc-codegen/src/libs/generate.ts"`; `kind`: `"problem-constructor"`; `line`: `110`; \}\]; `status`: `422`; `title`: `"Validation Error"`; \}, \{ `category`: `"BadRequest"`; `code`: `"rpc-codegen/no-rest-controllers-found"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#rpc-codegen-no-rest-controllers-found"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The caller sent malformed input or unsupported request options."`; `operatorAction`: `"Inspect validation details and request logs; do not retry unchanged input."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Correct the request input and retry after validation passes."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/rpc-codegen/src/libs/loadRoutes.ts"`; `kind`: `"problem-constructor"`; `line`: `36`; \}\]; `status`: `400`; `title`: `"Bad Request"`; \}, \{ `category`: `"ValidationError"`; `code`: `"rpc-codegen/unsupported-form-schema"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#rpc-codegen-unsupported-form-schema"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request or generated contract failed schema or semantic validation."`; `operatorAction`: `"Inspect schema diagnostics, generated contracts, and validation metadata."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Fix the invalid fields and retry with schema-conformant input."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/rpc-codegen/src/libs/generate.ts"`; `kind`: `"problem-constructor"`; `line`: `116`; \}\]; `status`: `422`; `title`: `"Validation Error"`; \}, \{ `category`: `"Forbidden"`; `code`: `"saas-demo/demo-endpoint-disabled"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#saas-demo-demo-endpoint-disabled"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The authenticated caller is not allowed to perform the requested action."`; `operatorAction`: `"Review policy, role, tenant, entitlement, and impersonation context."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Request the required permission or choose an allowed action."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/create-croco-app/templates/saas/apps/api-server/src/problems.ts"`; `kind`: `"problem-class"`; `line`: `4`; \}\]; `status`: `403`; `title`: `"Forbidden"`; \}, \{ `category`: `"ValidationError"`; `code`: `"saas-demo/invalid-jobs-query"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#saas-demo-invalid-jobs-query"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request or generated contract failed schema or semantic validation."`; `operatorAction`: `"Inspect schema diagnostics, generated contracts, and validation metadata."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Fix the invalid fields and retry with schema-conformant input."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/create-croco-app/templates/saas/apps/api-server/src/problems.ts"`; `kind`: `"problem-class"`; `line`: `30`; \}\]; `status`: `422`; `title`: `"Validation Error"`; \}, \{ `category`: `"ValidationError"`; `code`: `"saas-demo/invalid-port"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#saas-demo-invalid-port"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request or generated contract failed schema or semantic validation."`; `operatorAction`: `"Inspect schema diagnostics, generated contracts, and validation metadata."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Fix the invalid fields and retry with schema-conformant input."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/create-croco-app/templates/saas/apps/api-server/src/problems.ts"`; `kind`: `"problem-class"`; `line`: `17`; \}\]; `status`: `422`; `title`: `"Validation Error"`; \}, \{ `category`: `"NotFound"`; `code`: `"saas-demo/job-not-found"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#saas-demo-job-not-found"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The requested resource or route-visible record does not exist."`; `operatorAction`: `"Confirm tenant scoping, data retention, and backing-store lookup behavior."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Verify the identifier and refresh the resource list before retrying."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/create-croco-app/templates/saas/apps/api-server/src/problems.ts"`; `kind`: `"problem-class"`; `line`: `39`; \}\]; `status`: `404`; `title`: `"Not Found"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"saas-demo/smoke-failed"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#saas-demo-smoke-failed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/create-croco-app/templates/saas/apps/api-server/src/problems.ts"`; `kind`: `"problem-class"`; `line`: `66`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"Conflict"`; `code`: `"saas-demo/tenant-already-exists"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#saas-demo-tenant-already-exists"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request conflicts with current state or an idempotency constraint."`; `operatorAction`: `"Inspect concurrent writes, idempotency keys, and uniqueness constraints."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Refresh state, resolve the conflict, and retry with the updated intent."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/create-croco-app/templates/saas/apps/api-server/src/problems.ts"`; `kind`: `"problem-class"`; `line`: `48`; \}\]; `status`: `409`; `title`: `"Conflict"`; \}, \{ `category`: `"NotFound"`; `code`: `"saas-demo/tenant-not-found"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#saas-demo-tenant-not-found"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The requested resource or route-visible record does not exist."`; `operatorAction`: `"Confirm tenant scoping, data retention, and backing-store lookup behavior."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Verify the identifier and refresh the resource list before retrying."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/create-croco-app/templates/saas/apps/api-server/src/problems.ts"`; `kind`: `"problem-class"`; `line`: `57`; \}\]; `status`: `404`; `title`: `"Not Found"`; \}, \{ `category`: `"NotImplemented"`; `code`: `"SEARCH_CAPABILITY_UNAVAILABLE"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#search-capability-unavailable"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The requested capability is not supported by this runtime or adapter."`; `operatorAction`: `"Check runtime capability declarations and provider maturity documentation."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Use a supported capability or choose an adapter/runtime that provides it."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/search-core/src/libs/problems/SearchProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `65`; \}\]; `status`: `501`; `title`: `"Not Implemented"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"SEARCH_DRIZZLE_INVALID_ROW"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#search-drizzle-invalid-row"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/search-drizzle/src/libs/problems/InvalidSearchRowProblem.ts"`; `kind`: `"problem-class"`; `line`: `7`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"Conflict"`; `code`: `"search-core/sync-identity-conflict"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#search-core-sync-identity-conflict"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The event envelope tenant or document identity conflicts with context.tenantId, payload.id, or payload.tenantId."`; `operatorAction`: `"Use extensions.source to identify the conflicting field and verify envelope-authoritative tenant and document identity propagation."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Correct the conflicting event or execution context, then replay the event."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/search-core/src/libs/problems/SearchProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `23`; \}\]; `status`: `409`; `title`: `"Conflict"`; \}, \{ `category`: `"NotFound"`; `code`: `"search-core/transform-not-found"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#search-core-transform-not-found"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The requested resource or route-visible record does not exist."`; `operatorAction`: `"Confirm tenant scoping, data retention, and backing-store lookup behavior."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Verify the identifier and refresh the resource list before retrying."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/search-core/src/libs/problems/SearchProblems.ts"`; `kind`: `"problem-class"`; `line`: `35`; \}\]; `status`: `404`; `title`: `"Not Found"`; \}, \{ `category`: `"NotFound"`; `code`: `"search-meilisearch/index-not-found"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#search-meilisearch-index-not-found"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The requested resource or route-visible record does not exist."`; `operatorAction`: `"Confirm tenant scoping, data retention, and backing-store lookup behavior."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Verify the identifier and refresh the resource list before retrying."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/search-meilisearch/src/libs/problems/MeilisearchProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `80`; \}\]; `status`: `404`; `title`: `"Not Found"`; \}, \{ `category`: `"ValidationError"`; `code`: `"search-meilisearch/invalid-request"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#search-meilisearch-invalid-request"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request or generated contract failed schema or semantic validation."`; `operatorAction`: `"Inspect schema diagnostics, generated contracts, and validation metadata."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Fix the invalid fields and retry with schema-conformant input."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/search-meilisearch/src/libs/problems/MeilisearchProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `60`; \}\]; `status`: `422`; `title`: `"Validation Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"search-meilisearch/missing-config"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#search-meilisearch-missing-config"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/search-meilisearch/src/libs/problems/MeilisearchProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `39`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"search-meilisearch/retryable-upstream"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#search-meilisearch-retryable-upstream"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/search-meilisearch/src/libs/problems/MeilisearchProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `100`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"search-meilisearch/tenant-token-not-configured"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#search-meilisearch-tenant-token-not-configured"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/search-meilisearch/src/libs/problems/MeilisearchProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `140`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"search-meilisearch/terminal-upstream"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#search-meilisearch-terminal-upstream"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/search-meilisearch/src/libs/problems/MeilisearchProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `120`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"Forbidden"`; `code`: `"SEAT_LIMIT_EXCEEDED"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#seat-limit-exceeded"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The authenticated caller is not allowed to perform the requested action."`; `operatorAction`: `"Review policy, role, tenant, entitlement, and impersonation context."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Request the required permission or choose an allowed action."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/membership-core/src/libs/problems/MembershipProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `78`; \}\]; `status`: `403`; `title`: `"Forbidden"`; \}, \{ `category`: `"Forbidden"`; `code`: `"SELF_IMPERSONATION_NOT_ALLOWED"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#self-impersonation-not-allowed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The authenticated caller is not allowed to perform the requested action."`; `operatorAction`: `"Review policy, role, tenant, entitlement, and impersonation context."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Request the required permission or choose an allowed action."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/impersonation-core/src/libs/problems/ImpersonationProblems.ts"`; `kind`: `"problem-class"`; `line`: `4`; \}\]; `status`: `403`; `title`: `"Forbidden"`; \}, \{ `category`: `"ValidationError"`; `code`: `"starter/invalid-environment"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#starter-invalid-environment"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request or generated contract failed schema or semantic validation."`; `operatorAction`: `"Inspect schema diagnostics, generated contracts, and validation metadata."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Fix the invalid fields and retry with schema-conformant input."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/create-croco-app/templates/spa-be-split/apps/api-server/src/problems.ts"`; `kind`: `"problem-class"`; `line`: `4`; \}\]; `status`: `422`; `title`: `"Validation Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"starter/unhandled-api-request"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#starter-unhandled-api-request"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/create-croco-app/templates/spa-be-split/apps/console-web/src/test/browser.ts"`; `kind`: `"problem-class"`; `line`: `8`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"NotFound"`; `code`: `"starter/user-not-found"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#starter-user-not-found"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The requested resource or route-visible record does not exist."`; `operatorAction`: `"Confirm tenant scoping, data retention, and backing-store lookup behavior."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Verify the identifier and refresh the resource list before retrying."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/create-croco-app/templates/spa-be-split/apps/api-server/src/problems.ts"`; `kind`: `"problem-class"`; `line`: `13`; \}\]; `status`: `404`; `title`: `"Not Found"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"STORAGE_DELETE_FAILED"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#storage-delete-failed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/storage-core/src/libs/problems/DeleteFailedProblem.ts"`; `kind`: `"problem-constructor"`; `line`: `8`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"NotFound"`; `code`: `"STORAGE_FILE_NOT_FOUND"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#storage-file-not-found"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The requested resource or route-visible record does not exist."`; `operatorAction`: `"Confirm tenant scoping, data retention, and backing-store lookup behavior."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Verify the identifier and refresh the resource list before retrying."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/storage-core/src/libs/problems/FileNotFoundProblem.ts"`; `kind`: `"problem-constructor"`; `line`: `11`; \}\]; `status`: `404`; `title`: `"Not Found"`; \}, \{ `category`: `"BadRequest"`; `code`: `"STORAGE_INVALID_KEY"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#storage-invalid-key"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The caller sent malformed input or unsupported request options."`; `operatorAction`: `"Inspect validation details and request logs; do not retry unchanged input."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Correct the request input and retry after validation passes."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/storage-core/src/libs/problems/InvalidKeyProblem.ts"`; `kind`: `"problem-class"`; `line`: `5`; \}\]; `status`: `400`; `title`: `"Bad Request"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"STORAGE_R2_EMPTY_BODY"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#storage-r2-empty-body"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/storage-r2/src/libs/problems/EmptyR2BodyProblem.ts"`; `kind`: `"problem-constructor"`; `line`: `9`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"STORAGE_R2_MISSING_CONFIG"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#storage-r2-missing-config"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/storage-r2/src/libs/problems/MissingR2ConfigProblem.ts"`; `kind`: `"problem-class"`; `line`: `8`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"STORAGE_R2_OBJECT_TOO_LARGE"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#storage-r2-object-too-large"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/storage-r2/src/libs/problems/R2ObjectTooLargeProblem.ts"`; `kind`: `"problem-class"`; `line`: `8`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"STORAGE_R2_READINESS_FAILED"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#storage-r2-readiness-failed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/storage-r2/src/libs/problems/R2ReadinessProblem.ts"`; `kind`: `"problem-class"`; `line`: `14`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"STORAGE_UPLOAD_FAILED"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#storage-upload-failed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/storage-core/src/libs/problems/UploadFailedProblem.ts"`; `kind`: `"problem-constructor"`; `line`: `11`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"storage-cloudflare/missing-config"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#storage-cloudflare-missing-config"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/storage-cloudflare/src/libs/CloudflareImagesDiagnosticsProvider.ts"`; `kind`: `"problem-constructor"`; `line`: `37`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"storage-cloudflare/retryable-upstream"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#storage-cloudflare-retryable-upstream"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/storage-cloudflare/src/libs/CloudflareImagesDiagnosticsProvider.ts"`; `kind`: `"problem-constructor"`; `line`: `70`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"storage-cloudflare/terminal-upstream"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#storage-cloudflare-terminal-upstream"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/storage-cloudflare/src/libs/CloudflareImagesDiagnosticsProvider.ts"`; `kind`: `"problem-constructor"`; `line`: `86`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"ValidationError"`; `code`: `"storage-cloudflare/validation-failed"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#storage-cloudflare-validation-failed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request or generated contract failed schema or semantic validation."`; `operatorAction`: `"Inspect schema diagnostics, generated contracts, and validation metadata."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Fix the invalid fields and retry with schema-conformant input."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/storage-cloudflare/src/libs/CloudflareImagesDiagnosticsProvider.ts"`; `kind`: `"problem-constructor"`; `line`: `57`; \}\]; `status`: `422`; `title`: `"Validation Error"`; \}, \{ `category`: `"BadRequest"`; `code`: `"storage-cloudinary/invalid-upload-intent-ttl"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#storage-cloudinary-invalid-upload-intent-ttl"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The caller sent malformed input or unsupported request options."`; `operatorAction`: `"Inspect validation details and request logs; do not retry unchanged input."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Correct the request input and retry after validation passes."`; \}; `sources`: readonly \[\{ `column`: `13`; `file`: `"packages/storage-cloudinary/src/libs/CloudinaryProvider.ts"`; `kind`: `"problem-factory"`; `line`: `331`; \}\]; `status`: `400`; `title`: `"Bad Request"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"storage-cloudinary/missing-config"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#storage-cloudinary-missing-config"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/storage-cloudinary/src/libs/CloudinaryDiagnosticsProvider.ts"`; `kind`: `"problem-constructor"`; `line`: `51`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"storage-cloudinary/retryable-upstream"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#storage-cloudinary-retryable-upstream"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/storage-cloudinary/src/libs/CloudinaryDiagnosticsProvider.ts"`; `kind`: `"problem-constructor"`; `line`: `84`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"storage-cloudinary/terminal-upstream"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#storage-cloudinary-terminal-upstream"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/storage-cloudinary/src/libs/CloudinaryDiagnosticsProvider.ts"`; `kind`: `"problem-constructor"`; `line`: `100`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"ValidationError"`; `code`: `"storage-cloudinary/validation-failed"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#storage-cloudinary-validation-failed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request or generated contract failed schema or semantic validation."`; `operatorAction`: `"Inspect schema diagnostics, generated contracts, and validation metadata."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Fix the invalid fields and retry with schema-conformant input."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/storage-cloudinary/src/libs/CloudinaryDiagnosticsProvider.ts"`; `kind`: `"problem-constructor"`; `line`: `71`; \}\]; `status`: `422`; `title`: `"Validation Error"`; \}, \{ `category`: `"BadRequest"`; `code`: `"storage/invalid-upload-intent-ttl"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#storage-invalid-upload-intent-ttl"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The caller sent malformed input or unsupported request options."`; `operatorAction`: `"Inspect validation details and request logs; do not retry unchanged input."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Correct the request input and retry after validation passes."`; \}; `sources`: readonly \[\{ `column`: `13`; `file`: `"packages/storage-cloudflare/src/libs/CloudflareImagesProvider.ts"`; `kind`: `"problem-factory"`; `line`: `305`; \}\]; `status`: `400`; `title`: `"Bad Request"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"STRATEGY_UNAVAILABLE"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#strategy-unavailable"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/search-core/src/libs/problems/SearchProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `44`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"STRUCTURED_OUTPUT_ERROR"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#structured-output-error"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/llm-core/src/libs/problems/LlmServiceProblem.ts"`; `kind`: `"problem-constructor"`; `line`: `52`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"tasks-core/duplicate-task-registration"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#tasks-core-duplicate-task-registration"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/tasks-core/src/libs/problems/TasksProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `13`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"tasks-core/execution-timeout"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#tasks-core-execution-timeout"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/tasks-core/src/libs/problems/TasksProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `46`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"NotFound"`; `code`: `"tasks-core/task-not-found"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#tasks-core-task-not-found"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The requested resource or route-visible record does not exist."`; `operatorAction`: `"Confirm tenant scoping, data retention, and backing-store lookup behavior."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Verify the identifier and refresh the resource list before retrying."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/tasks-core/src/libs/problems/TasksProblems.ts"`; `kind`: `"problem-class"`; `line`: `4`; \}\]; `status`: `404`; `title`: `"Not Found"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"tasks-core/task-runner-di-failure"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#tasks-core-task-runner-di-failure"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/tasks-core/src/libs/problems/TasksProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `29`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"BadRequest"`; `code`: `"tasks-qstash/invalid-publish-request"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#tasks-qstash-invalid-publish-request"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The caller sent malformed input or unsupported request options."`; `operatorAction`: `"Inspect validation details and request logs; do not retry unchanged input."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Correct the request input and retry after validation passes."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/tasks-qstash/src/libs/problems/QStashTaskProblems.ts"`; `kind`: `"problem-class"`; `line`: `18`; \}\]; `status`: `400`; `title`: `"Bad Request"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"tasks-qstash/missing-config"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#tasks-qstash-missing-config"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/tasks-qstash/src/libs/problems/QStashTaskProblems.ts"`; `kind`: `"problem-class"`; `line`: `4`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"ValidationError"`; `code`: `"TELEMETRY_AUTO_INSTRUMENTATION_INVALID_CONFIG"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#telemetry-auto-instrumentation-invalid-config"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request or generated contract failed schema or semantic validation."`; `operatorAction`: `"Inspect schema diagnostics, generated contracts, and validation metadata."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Fix the invalid fields and retry with schema-conformant input."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/telemetry-sdk-node/src/libs/problems/TelemetryAutoInstrumentationProblem.ts"`; `kind`: `"problem-class"`; `line`: `7`; \}\]; `status`: `422`; `title`: `"Validation Error"`; \}, \{ `category`: `"NotImplemented"`; `code`: `"TELEMETRY_FORCE_FLUSH_UNSUPPORTED"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#telemetry-force-flush-unsupported"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The requested capability is not supported by this runtime or adapter."`; `operatorAction`: `"Check runtime capability declarations and provider maturity documentation."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Use a supported capability or choose an adapter/runtime that provides it."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/telemetry-sdk-node/src/libs/problems/TelemetryProblems.ts"`; `kind`: `"problem-class"`; `line`: `62`; \}\]; `status`: `501`; `title`: `"Not Implemented"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"TELEMETRY_RUNTIME_ERROR"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#telemetry-runtime-error"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/telemetry-sdk-node/src/libs/problems/TelemetryProblems.ts"`; `kind`: `"problem-class"`; `line`: `75`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"BadRequest"`; `code`: `"TELEMETRY_SAMPLER_INVALID_CONFIG"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#telemetry-sampler-invalid-config"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The caller sent malformed input or unsupported request options."`; `operatorAction`: `"Inspect validation details and request logs; do not retry unchanged input."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Correct the request input and retry after validation passes."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/telemetry-sdk-node/src/libs/problems/TelemetryProblems.ts"`; `kind`: `"problem-class"`; `line`: `8`; \}\]; `status`: `400`; `title`: `"Bad Request"`; \}, \{ `category`: `"BadRequest"`; `code`: `"TELEMETRY_SIGNAL_UNSUPPORTED"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#telemetry-signal-unsupported"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The caller sent malformed input or unsupported request options."`; `operatorAction`: `"Inspect validation details and request logs; do not retry unchanged input."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Correct the request input and retry after validation passes."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/telemetry-sdk-node/src/libs/problems/TelemetryProblems.ts"`; `kind`: `"problem-class"`; `line`: `36`; \}\]; `status`: `400`; `title`: `"Bad Request"`; \}, \{ `category`: `"Forbidden"`; `code`: `"tenant-core/admin-bypass-reason-required"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#tenant-core-admin-bypass-reason-required"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The authenticated caller is not allowed to perform the requested action."`; `operatorAction`: `"Review policy, role, tenant, entitlement, and impersonation context."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Request the required permission or choose an allowed action."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/tenant-core/src/libs/problems/TenantIsolationProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `60`; \}\]; `status`: `403`; `title`: `"Forbidden"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"tenant-core/cross-tenant-leak"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#tenant-core-cross-tenant-leak"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/tenant-core/src/libs/problems/TenantIsolationProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `79`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"BadRequest"`; `code`: `"tenant-core/default-tenant-fallback"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#tenant-core-default-tenant-fallback"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The caller sent malformed input or unsupported request options."`; `operatorAction`: `"Inspect validation details and request logs; do not retry unchanged input."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Correct the request input and retry after validation passes."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/tenant-core/src/libs/problems/TenantIsolationProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `48`; \}\]; `status`: `400`; `title`: `"Bad Request"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"tenant-core/duplicate-tenant-manager-registration"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#tenant-core-duplicate-tenant-manager-registration"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/tenant-core/src/libs/problems/DuplicateTenantManagerRegistrationProblem.ts"`; `kind`: `"problem-class"`; `line`: `4`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"Unauthorized"`; `code`: `"tenant-core/isolation-context-missing"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#tenant-core-isolation-context-missing"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request did not include valid authentication credentials."`; `operatorAction`: `"Check authentication configuration, token issuer, and clock skew."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Sign in again or provide a valid credential."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/tenant-core/src/libs/problems/TenantIsolationProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `39`; \}\]; `status`: `401`; `title`: `"Unauthorized"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"tenant-core/tenant-manager-not-registered"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#tenant-core-tenant-manager-not-registered"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/tenant-core/src/libs/problems/TenantManagerNotRegisteredProblem.ts"`; `kind`: `"problem-class"`; `line`: `4`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"Forbidden"`; `code`: `"tenant-core/unsafe-query"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#tenant-core-unsafe-query"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The authenticated caller is not allowed to perform the requested action."`; `operatorAction`: `"Review policy, role, tenant, entitlement, and impersonation context."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Request the required permission or choose an allowed action."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/tenant-core/src/libs/problems/TenantIsolationProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `69`; \}\]; `status`: `403`; `title`: `"Forbidden"`; \}, \{ `category`: `"NotFound"`; `code`: `"tenant/not-found"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#tenant-not-found"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The requested resource or route-visible record does not exist."`; `operatorAction`: `"Confirm tenant scoping, data retention, and backing-store lookup behavior."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Verify the identifier and refresh the resource list before retrying."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/tenant-core/src/libs/problems/TenantNotFoundProblem.ts"`; `kind`: `"problem-class"`; `line`: `7`; \}\]; `status`: `404`; `title`: `"Not Found"`; \}, \{ `category`: `"Unauthorized"`; `code`: `"tenant/required"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#tenant-required"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request did not include valid authentication credentials."`; `operatorAction`: `"Check authentication configuration, token issuer, and clock skew."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Sign in again or provide a valid credential."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/tenant-core/src/libs/problems/TenantRequiredProblem.ts"`; `kind`: `"problem-class"`; `line`: `7`; \}\]; `status`: `401`; `title`: `"Unauthorized"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"testing-resources/cleanup-failed"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#testing-resources-cleanup-failed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `12`; `file`: `"packages/testing-resources/src/libs/problems.ts"`; `kind`: `"problem-metadata"`; `line`: `17`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"testing-resources/health-check-failed"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#testing-resources-health-check-failed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `19`; `file`: `"packages/testing-resources/src/libs/problems.ts"`; `kind`: `"problem-metadata"`; `line`: `13`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"testing-resources/invalid-configuration"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#testing-resources-invalid-configuration"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/testing-resources/src/libs/problems.ts"`; `kind`: `"problem-constructor"`; `line`: `25`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"testing-resources/migration-failed"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#testing-resources-migration-failed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `14`; `file`: `"packages/testing-resources/src/libs/problems.ts"`; `kind`: `"problem-metadata"`; `line`: `9`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"testing-resources/startup-failed"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#testing-resources-startup-failed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `12`; `file`: `"packages/testing-resources/src/libs/problems.ts"`; `kind`: `"problem-metadata"`; `line`: `5`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"testing/after-commit-hooks-failed"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#testing-after-commit-hooks-failed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/testing/src/libs/testing.ts"`; `kind`: `"problem-constructor"`; `line`: `184`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"testing/telemetry-provider-already-installed"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#testing-telemetry-provider-already-installed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/testing/src/libs/telemetry-testing.ts"`; `kind`: `"problem-constructor"`; `line`: `54`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"testing/test-kernel-disposal-failed"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#testing-test-kernel-disposal-failed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/testing/src/libs/TestKernel.ts"`; `kind`: `"problem-constructor"`; `line`: `144`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"testing/test-kernel-disposed"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#testing-test-kernel-disposed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/testing/src/libs/TestKernel.ts"`; `kind`: `"problem-constructor"`; `line`: `172`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"testing/test-kernel-resource-fidelity"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#testing-test-kernel-resource-fidelity"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/testing/src/libs/TestKernel.ts"`; `kind`: `"problem-constructor"`; `line`: `182`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"testing/test-kernel-resource-not-found"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#testing-test-kernel-resource-not-found"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/testing/src/libs/TestKernel.ts"`; `kind`: `"problem-constructor"`; `line`: `198`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"testing/test-kernel-resource-registration"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#testing-test-kernel-resource-registration"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/testing/src/libs/TestKernel.ts"`; `kind`: `"problem-constructor"`; `line`: `211`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"testing/test-kernel-validation-policy"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#testing-test-kernel-validation-policy"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/testing/src/libs/TestKernel.ts"`; `kind`: `"problem-constructor"`; `line`: `131`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"testing/transaction-context-not-active"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#testing-transaction-context-not-active"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/testing/src/libs/testing.ts"`; `kind`: `"problem-constructor"`; `line`: `171`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"BadRequest"`; `code`: `"TOKEN_LIMIT_EXCEEDED"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#token-limit-exceeded"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The caller sent malformed input or unsupported request options."`; `operatorAction`: `"Inspect validation details and request logs; do not retry unchanged input."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Correct the request input and retry after validation passes."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/llm-core/src/libs/problems/LlmProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `21`; \}\]; `status`: `400`; `title`: `"Bad Request"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"TOOL_EXECUTION_ERROR"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#tool-execution-error"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/llm-core/src/libs/problems/LlmServiceProblem.ts"`; `kind`: `"problem-constructor"`; `line`: `61`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"BadRequest"`; `code`: `"transports-graphql/request-body-aborted"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#transports-graphql-request-body-aborted"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The caller sent malformed input or unsupported request options."`; `operatorAction`: `"Inspect validation details and request logs; do not retry unchanged input."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Correct the request input and retry after validation passes."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/transports-graphql/src/libs/problems/GraphQLTransportProblems.ts"`; `kind`: `"problem-class"`; `line`: `47`; \}\]; `status`: `400`; `title`: `"Bad Request"`; \}, \{ `category`: `"PayloadTooLarge"`; `code`: `"transports-graphql/request-body-too-large"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#transports-graphql-request-body-too-large"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request body exceeded the configured byte limit."`; `operatorAction`: `"Confirm route body limits and upstream proxy limits match the intended upload policy."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Reduce the request body and retry."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/transports-graphql/src/libs/problems/GraphQLTransportProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `33`; \}\]; `status`: `413`; `title`: `"Payload Too Large"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"transports-graphql/resolvers-not-configured"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#transports-graphql-resolvers-not-configured"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/transports-graphql/src/libs/problems/GraphQLTransportProblems.ts"`; `kind`: `"problem-class"`; `line`: `4`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"transports-graphql/schema-not-configured"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#transports-graphql-schema-not-configured"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/transports-graphql/src/libs/problems/GraphQLTransportProblems.ts"`; `kind`: `"problem-class"`; `line`: `16`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"transports-graphql/server-not-initialized"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#transports-graphql-server-not-initialized"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/transports-graphql/src/libs/problems/GraphQLTransportProblems.ts"`; `kind`: `"problem-class"`; `line`: `24`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"transports-http/body-limit-invalid-configuration"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#transports-http-body-limit-invalid-configuration"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The HTTP body-limit middleware was configured with an invalid byte boundary."`; `operatorAction`: `"Set the body-limit value to a finite, nonnegative safe integer and restart the service."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Ask the operator to correct the service configuration before retrying."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/transports-http/src/libs/problems/HttpRequestBodyProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `15`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"transports-http/di-bootstrap-validation"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#transports-http-di-bootstrap-validation"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `11`; `file`: `"packages/transports-http/src/libs/CrocoApp.ts"`; `kind`: `"problem-factory"`; `line`: `315`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"transports-http/duplicate-health-check"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#transports-http-duplicate-health-check"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `10`; `file`: `"packages/transports-http/src/libs/HealthCheckRegistry.ts"`; `kind`: `"problem-factory"`; `line`: `71`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"transports-http/duplicate-route-definition"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#transports-http-duplicate-route-definition"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Two REST controller methods compile to the same HTTP method and runtime path."`; `operatorAction`: `"Inspect the duplicate-route diagnostic for the existing and conflicting controller methods and their route decorator source locations, then rename one route path or change one HTTP method."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Use an application build where every route decorator has a unique HTTP method and path combination."`; \}; `sources`: readonly \[\{ `column`: `15`; `file`: `"packages/transports-http/src/libs/RouteCompiler.ts"`; `kind`: `"problem-factory"`; `line`: `115`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"transports-http/graceful-shutdown-configuration"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#transports-http-graceful-shutdown-configuration"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Graceful shutdown was configured with a non-finite total or event-bus drain timeout."`; `operatorAction`: `"Set timeoutMs and eventBusDrainTimeoutMs to finite numbers, then reconstruct the middleware or controller before retrying shutdown."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Ask the operator to correct the graceful shutdown timeout configuration before reconstructing the HTTP application."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/transports-http/src/libs/problems/GracefulShutdownProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `20`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"transports-http/graceful-shutdown-timeout"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#transports-http-graceful-shutdown-timeout"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Graceful shutdown did not finish a phase before that phase's configured deadline elapsed."`; `operatorAction`: `"Inspect the reported phase, timeoutMs, and elapsedMs extensions, then investigate slow request handlers, event-bus draining, or shutdown hooks."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Wait for the stalled shutdown phase to be investigated before retrying; active requests or cleanup work may still be settling."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/transports-http/src/libs/problems/GracefulShutdownProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `47`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"transports-http/middleware-next-called-multiple-times"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#transports-http-middleware-next-called-multiple-times"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Compatibility metadata for the previous HTTP middleware multiple-next code. New runtime failures use CROCO_HTTP_MIDDLEWARE_002 and preserve this value as extensions.legacyCode."`; `operatorAction`: `"Update dashboards, alerts, and runbooks from transports-http/middleware-next-called-multiple-times to CROCO_HTTP_MIDDLEWARE_002 before removing legacy-code matching."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Migrate Problem.code matchers to CROCO_HTTP_MIDDLEWARE_002; use extensions.legacyCode only while rolling out compatibility changes."`; \}; `sources`: readonly \[\{ `column`: `49`; `file`: `"packages/transports-http/src/libs/CrocoRouteRegistrar.ts"`; `kind`: `"problem-metadata"`; `line`: `39`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"transports-http/pipe-resolution-failed"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#transports-http-pipe-resolution-failed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `13`; `file`: `"packages/transports-http/src/libs/ParamResolver.ts"`; `kind`: `"problem-factory"`; `line`: `159`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"transports-http/provider-resolution-failed"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#transports-http-provider-resolution-failed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `11`; `file`: `"packages/transports-http/src/libs/RouteCompiler.ts"`; `kind`: `"problem-factory"`; `line`: `67`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"BadRequest"`; `code`: `"transports-http/request-body-read-failed"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#transports-http-request-body-read-failed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The caller sent malformed input or unsupported request options."`; `operatorAction`: `"Inspect validation details and request logs; do not retry unchanged input."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Correct the request input and retry after validation passes."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/transports-http/src/libs/problems/HttpRequestBodyProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `67`; \}\]; `status`: `400`; `title`: `"Bad Request"`; \}, \{ `category`: `"PayloadTooLarge"`; `code`: `"transports-http/request-body-too-large"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#transports-http-request-body-too-large"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request body exceeded the configured byte limit."`; `operatorAction`: `"Confirm route body limits and upstream proxy limits match the intended upload policy."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Reduce the request body and retry."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/transports-http/src/libs/problems/HttpRequestBodyProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `31`; \}\]; `status`: `413`; `statusPolicy`: \{ `configuration`: `"bodyLimitMiddleware.statusCode"`; `defaultStatus`: `413`; `kind`: `"runtime-configurable"`; \}; `title`: `"Payload Too Large"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"transports-http/request-body-unavailable"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#transports-http-request-body-unavailable"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/transports-http/src/libs/problems/HttpRequestBodyProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `52`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"transports-http/route-method-not-function"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#transports-http-route-method-not-function"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `17`; `file`: `"packages/transports-http/src/libs/RouteCompiler.ts"`; `kind`: `"problem-factory"`; `line`: `175`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"Conflict"`; `code`: `"transports-http/runtime-capability-invalid"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#transports-http-runtime-capability-invalid"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request conflicts with current state or an idempotency constraint."`; `operatorAction`: `"Inspect concurrent writes, idempotency keys, and uniqueness constraints."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Refresh state, resolve the conflict, and retry with the updated intent."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/transports-http/src/libs/runtimeContext.ts"`; `kind`: `"problem-class"`; `line`: `88`; \}\]; `status`: `409`; `title`: `"Conflict"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"transports-http/security-middleware-validation"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#transports-http-security-middleware-validation"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Compatibility metadata for the previous HTTP security middleware validation code. New runtime failures use CROCO_HTTP_SECURITY_001 and preserve this value as extensions.legacyCode."`; `operatorAction`: `"Update dashboards, alerts, and runbooks from transports-http/security-middleware-validation to CROCO_HTTP_SECURITY_001 before removing legacy-code matching."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Migrate Problem.code matchers to CROCO_HTTP_SECURITY_001; use extensions.legacyCode only while rolling out compatibility changes."`; \}; `sources`: readonly \[\{ `column`: `55`; `file`: `"packages/transports-http/src/libs/CrocoApp.ts"`; `kind`: `"problem-metadata"`; `line`: `88`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"transports-http/unsupported-route-method"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#transports-http-unsupported-route-method"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `15`; `file`: `"packages/transports-http/src/libs/CrocoRouteRegistrar.ts"`; `kind`: `"problem-factory"`; `line`: `245`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"triggers-core/duplicate-trigger-metadata"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#triggers-core-duplicate-trigger-metadata"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `17`; `file`: `"packages/triggers-core/src/libs/TriggerRegistry.ts"`; `kind`: `"problem-factory"`; `line`: `69`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"triggers-core/duplicate-trigger-metadata-entry"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#triggers-core-duplicate-trigger-metadata-entry"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `17`; `file`: `"packages/triggers-core/src/libs/TriggerRegistry.ts"`; `kind`: `"problem-factory"`; `line`: `121`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"triggers-qstash/duplicate-schedule-id"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#triggers-qstash-duplicate-schedule-id"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `15`; `file`: `"packages/triggers-qstash/src/libs/QStashScheduler.ts"`; `kind`: `"problem-factory"`; `line`: `253`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"triggers-qstash/execution-failed"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#triggers-qstash-execution-failed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `13`; `file`: `"packages/triggers-qstash/src/libs/QStashTriggerHandler.ts"`; `kind`: `"problem-metadata"`; `line`: `264`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"triggers-qstash/service-resolution-failed"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#triggers-qstash-service-resolution-failed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `15`; `file`: `"packages/triggers-qstash/src/libs/QStashTriggerHandler.ts"`; `kind`: `"problem-metadata"`; `line`: `254`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"tx-core/after-commit-hooks-failed"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#tx-core-after-commit-hooks-failed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/tx-core/src/libs/problems/TransactionProblems.ts"`; `kind`: `"problem-class"`; `line`: `103`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"tx-core/after-commit-outcome-required"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#tx-core-after-commit-outcome-required"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/tx-core/src/libs/problems/TransactionProblems.ts"`; `kind`: `"problem-class"`; `line`: `35`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"tx-core/after-commit-registration-closed"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#tx-core-after-commit-registration-closed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/tx-core/src/libs/problems/TransactionProblems.ts"`; `kind`: `"problem-class"`; `line`: `50`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"tx-core/decorator-misuse"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#tx-core-decorator-misuse"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/tx-core/src/libs/problems/TransactionProblems.ts"`; `kind`: `"problem-class"`; `line`: `13`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"tx-core/detached-transaction-operation"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#tx-core-detached-transaction-operation"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/tx-core/src/libs/problems/TransactionProblems.ts"`; `kind`: `"problem-class"`; `line`: `61`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"tx-core/duplicate-tx-manager-registration"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#tx-core-duplicate-tx-manager-registration"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/tx-core/src/libs/errors.ts"`; `kind`: `"problem-class"`; `line`: `7`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"ValidationError"`; `code`: `"tx-core/invalid-transaction-timeout"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#tx-core-invalid-transaction-timeout"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request or generated contract failed schema or semantic validation."`; `operatorAction`: `"Inspect schema diagnostics, generated contracts, and validation metadata."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Fix the invalid fields and retry with schema-conformant input."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/tx-core/src/libs/problems/TransactionProblems.ts"`; `kind`: `"problem-class"`; `line`: `87`; \}\]; `status`: `422`; `title`: `"Validation Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"tx-core/manager-not-registered"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#tx-core-manager-not-registered"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/tx-core/src/libs/errors.ts"`; `kind`: `"problem-class"`; `line`: `23`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"tx-core/missing-transaction-context"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#tx-core-missing-transaction-context"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/tx-core/src/libs/problems/TransactionProblems.ts"`; `kind`: `"problem-class"`; `line`: `24`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"tx-core/outcome-requires-root"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#tx-core-outcome-requires-root"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/tx-core/src/libs/problems/TransactionProblems.ts"`; `kind`: `"problem-class"`; `line`: `76`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"BusinessRuleViolation"`; `code`: `"tx-core/propagation-error"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#tx-core-propagation-error"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request is syntactically valid but violates a domain rule."`; `operatorAction`: `"Review domain policy, entitlement, quota, and lifecycle rule evidence."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Change the workflow state or request values so the business rule is satisfied."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/tx-core/src/libs/errors.ts"`; `kind`: `"problem-class"`; `line`: `34`; \}\]; `status`: `422`; `title`: `"Business Rule Violation"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"tx-core/transaction-outcome-unknown"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#tx-core-transaction-outcome-unknown"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/tx-core/src/libs/problems/TransactionProblems.ts"`; `kind`: `"problem-class"`; `line`: `165`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"tx-core/transaction-rollback-confirmed"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#tx-core-transaction-rollback-confirmed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/tx-core/src/libs/problems/TransactionProblems.ts"`; `kind`: `"problem-class"`; `line`: `147`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"tx-core/transaction-timeout"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#tx-core-transaction-timeout"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/tx-core/src/libs/problems/TransactionProblems.ts"`; `kind`: `"problem-class"`; `line`: `130`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"tx-drizzle/rls-configuration-invalid"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#tx-drizzle-rls-configuration-invalid"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"A PostgreSQL RLS helper received malformed static identifier or setting-key configuration."`; `operatorAction`: `"Use the reported field name and the @croco/tx-drizzle RLS contract to correct the configuration, then restart the service."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Ask the operator to correct the RLS configuration before retrying."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/tx-drizzle/src/libs/problems/TxDrizzleProblems.ts"`; `kind`: `"problem-class"`; `line`: `7`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"tx-drizzle/rls-debug-logging-failed"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#tx-drizzle-rls-debug-logging-failed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Requested RLS debug logging could not initialize or write its diagnostic event."`; `operatorAction`: `"Provide an RlsLogger or register the framework Logger, then verify its info() output path before retrying the transaction."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Ask the operator to restore the configured logger before retrying."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/tx-drizzle/src/libs/problems/TxDrizzleProblems.ts"`; `kind`: `"problem-class"`; `line`: `57`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"tx-drizzle/rls-execute-unsupported"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#tx-drizzle-rls-execute-unsupported"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/tx-drizzle/src/libs/problems/TxDrizzleProblems.ts"`; `kind`: `"problem-class"`; `line`: `29`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"tx-drizzle/savepoint-unsupported"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#tx-drizzle-savepoint-unsupported"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/tx-drizzle/src/libs/problems/TxDrizzleProblems.ts"`; `kind`: `"problem-class"`; `line`: `76`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"tx-drizzle/tenant-context-required"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#tx-drizzle-tenant-context-required"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/tx-drizzle/src/libs/problems/TxDrizzleProblems.ts"`; `kind`: `"problem-class"`; `line`: `21`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"Unauthorized"`; `code`: `"UNAUTHORIZED"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#unauthorized"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request did not include valid authentication credentials."`; `operatorAction`: `"Check authentication configuration, token issuer, and clock skew."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Sign in again or provide a valid credential."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/auth-core/src/libs/problems/AuthProblems.ts"`; `kind`: `"problem-class"`; `line`: `5`; \}\]; `status`: `401`; `title`: `"Unauthorized"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"WEBHOOK_PROCESSING_FAILED"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#webhook-processing-failed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/billing-polar/src/libs/problems/WebhookProcessingProblem.ts"`; `kind`: `"problem-class"`; `line`: `4`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"BadRequest"`; `code`: `"WEBHOOK_VALIDATION_FAILED"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#webhook-validation-failed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The caller sent malformed input or unsupported request options."`; `operatorAction`: `"Inspect validation details and request logs; do not retry unchanged input."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Correct the request input and retry after validation passes."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/billing-polar/src/libs/problems/WebhookValidationProblem.ts"`; `kind`: `"problem-class"`; `line`: `4`; \}\]; `status`: `400`; `title`: `"Bad Request"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"webhooks-core/configuration"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#webhooks-core-configuration"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `11`; `file`: `"packages/webhooks-core/src/libs/problems/WebhookProblems.ts"`; `kind`: `"problem-metadata"`; `line`: `38`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"webhooks-core/dispatch-failed"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#webhooks-core-dispatch-failed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `11`; `file`: `"packages/webhooks-core/src/libs/problems/WebhookProblems.ts"`; `kind`: `"problem-metadata"`; `line`: `117`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"Conflict"`; `code`: `"webhooks-core/duplicate-event"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#webhooks-core-duplicate-event"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request conflicts with current state or an idempotency constraint."`; `operatorAction`: `"Inspect concurrent writes, idempotency keys, and uniqueness constraints."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Refresh state, resolve the conflict, and retry with the updated intent."`; \}; `sources`: readonly \[\{ `column`: `11`; `file`: `"packages/webhooks-core/src/libs/problems/WebhookProblems.ts"`; `kind`: `"problem-metadata"`; `line`: `139`; \}\]; `status`: `409`; `title`: `"Conflict"`; \}, \{ `category`: `"BadRequest"`; `code`: `"webhooks-core/invalid-envelope"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#webhooks-core-invalid-envelope"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The caller sent malformed input or unsupported request options."`; `operatorAction`: `"Inspect validation details and request logs; do not retry unchanged input."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Correct the request input and retry after validation passes."`; \}; `sources`: readonly \[\{ `column`: `11`; `file`: `"packages/webhooks-core/src/libs/problems/WebhookProblems.ts"`; `kind`: `"problem-metadata"`; `line`: `74`; \}\]; `status`: `400`; `title`: `"Bad Request"`; \}, \{ `category`: `"BadRequest"`; `code`: `"webhooks-core/invalid-fixture"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#webhooks-core-invalid-fixture"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The caller sent malformed input or unsupported request options."`; `operatorAction`: `"Inspect validation details and request logs; do not retry unchanged input."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Correct the request input and retry after validation passes."`; \}; `sources`: readonly \[\{ `column`: `11`; `file`: `"packages/webhooks-core/src/libs/problems/WebhookProblems.ts"`; `kind`: `"problem-metadata"`; `line`: `178`; \}\]; `status`: `400`; `title`: `"Bad Request"`; \}, \{ `category`: `"BadRequest"`; `code`: `"webhooks-core/invalid-signature"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#webhooks-core-invalid-signature"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The caller sent malformed input or unsupported request options."`; `operatorAction`: `"Inspect validation details and request logs; do not retry unchanged input."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Correct the request input and retry after validation passes."`; \}; `sources`: readonly \[\{ `column`: `11`; `file`: `"packages/webhooks-core/src/libs/problems/WebhookProblems.ts"`; `kind`: `"problem-metadata"`; `line`: `54`; \}\]; `status`: `400`; `title`: `"Bad Request"`; \}, \{ `category`: `"Conflict"`; `code`: `"webhooks-core/outbound-acceptance-unknown"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#webhooks-core-outbound-acceptance-unknown"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request conflicts with current state or an idempotency constraint."`; `operatorAction`: `"Inspect concurrent writes, idempotency keys, and uniqueness constraints."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Refresh state, resolve the conflict, and retry with the updated intent."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/webhooks-core/src/libs/outbound/OutboundWebhookProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `97`; \}\]; `status`: `409`; `title`: `"Conflict"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"webhooks-core/outbound-configuration"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#webhooks-core-outbound-configuration"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/webhooks-core/src/libs/outbound/OutboundWebhookProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `119`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"NotFound"`; `code`: `"webhooks-core/outbound-endpoint-not-found"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#webhooks-core-outbound-endpoint-not-found"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The requested resource or route-visible record does not exist."`; `operatorAction`: `"Confirm tenant scoping, data retention, and backing-store lookup behavior."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Verify the identifier and refresh the resource list before retrying."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/webhooks-core/src/libs/outbound/OutboundWebhookProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `53`; \}\]; `status`: `404`; `title`: `"Not Found"`; \}, \{ `category`: `"ValidationError"`; `code`: `"webhooks-core/outbound-invalid-event"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#webhooks-core-outbound-invalid-event"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request or generated contract failed schema or semantic validation."`; `operatorAction`: `"Inspect schema diagnostics, generated contracts, and validation metadata."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Fix the invalid fields and retry with schema-conformant input."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/webhooks-core/src/libs/outbound/OutboundWebhookProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `31`; \}\]; `status`: `422`; `title`: `"Validation Error"`; \}, \{ `category`: `"ValidationError"`; `code`: `"webhooks-core/outbound-invalid-secret-version"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#webhooks-core-outbound-invalid-secret-version"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request or generated contract failed schema or semantic validation."`; `operatorAction`: `"Inspect schema diagnostics, generated contracts, and validation metadata."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Fix the invalid fields and retry with schema-conformant input."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/webhooks-core/src/libs/outbound/OutboundWebhookProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `64`; \}\]; `status`: `422`; `title`: `"Validation Error"`; \}, \{ `category`: `"ValidationError"`; `code`: `"webhooks-core/outbound-invalid-url"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#webhooks-core-outbound-invalid-url"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request or generated contract failed schema or semantic validation."`; `operatorAction`: `"Inspect schema diagnostics, generated contracts, and validation metadata."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Fix the invalid fields and retry with schema-conformant input."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/webhooks-core/src/libs/outbound/OutboundWebhookProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `42`; \}\]; `status`: `422`; `title`: `"Validation Error"`; \}, \{ `category`: `"BusinessRuleViolation"`; `code`: `"webhooks-core/outbound-permanent-failure"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#webhooks-core-outbound-permanent-failure"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request is syntactically valid but violates a domain rule."`; `operatorAction`: `"Review domain policy, entitlement, quota, and lifecycle rule evidence."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Change the workflow state or request values so the business rule is satisfied."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/webhooks-core/src/libs/outbound/OutboundWebhookProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `86`; \}\]; `status`: `422`; `title`: `"Business Rule Violation"`; \}, \{ `category`: `"Conflict"`; `code`: `"webhooks-core/outbound-replay-not-allowed"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#webhooks-core-outbound-replay-not-allowed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request conflicts with current state or an idempotency constraint."`; `operatorAction`: `"Inspect concurrent writes, idempotency keys, and uniqueness constraints."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Refresh state, resolve the conflict, and retry with the updated intent."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/webhooks-core/src/libs/outbound/OutboundWebhookProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `108`; \}\]; `status`: `409`; `title`: `"Conflict"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"webhooks-core/outbound-retryable-failure"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#webhooks-core-outbound-retryable-failure"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/webhooks-core/src/libs/outbound/OutboundWebhookProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `75`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"webhooks-core/reporter-failed"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#webhooks-core-reporter-failed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `11`; `file`: `"packages/webhooks-core/src/libs/problems/WebhookProblems.ts"`; `kind`: `"problem-metadata"`; `line`: `162`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"BadRequest"`; `code`: `"webhooks-core/unknown-event"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#webhooks-core-unknown-event"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The caller sent malformed input or unsupported request options."`; `operatorAction`: `"Inspect validation details and request logs; do not retry unchanged input."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Correct the request input and retry after validation passes."`; \}; `sources`: readonly \[\{ `column`: `11`; `file`: `"packages/webhooks-core/src/libs/problems/WebhookProblems.ts"`; `kind`: `"problem-metadata"`; `line`: `94`; \}\]; `status`: `400`; `title`: `"Bad Request"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"workflow-core/duplicate-workflow-registration"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#workflow-core-duplicate-workflow-registration"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/workflow-core/src/libs/problems/WorkflowProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `15`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"workflow-core/replay-unsupported"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#workflow-core-replay-unsupported"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/workflow-core/src/libs/problems/WorkflowProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `47`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"workflow-core/saga-definition-invalid"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#workflow-core-saga-definition-invalid"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/workflow-core/src/libs/problems/WorkflowProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `62`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"workflow-core/saga-execution-failed"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#workflow-core-saga-execution-failed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/workflow-core/src/libs/problems/WorkflowProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `127`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"NotFound"`; `code`: `"workflow-core/saga-execution-not-found"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#workflow-core-saga-execution-not-found"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The requested resource or route-visible record does not exist."`; `operatorAction`: `"Confirm tenant scoping, data retention, and backing-store lookup behavior."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Verify the identifier and refresh the resource list before retrying."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/workflow-core/src/libs/problems/WorkflowProblems.ts"`; `kind`: `"problem-class"`; `line`: `77`; \}\]; `status`: `404`; `title`: `"Not Found"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"workflow-core/saga-replay-invalid"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#workflow-core-saga-replay-invalid"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/workflow-core/src/libs/problems/WorkflowProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `103`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"Conflict"`; `code`: `"workflow-core/saga-store-conflict"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#workflow-core-saga-store-conflict"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request conflicts with current state or an idempotency constraint."`; `operatorAction`: `"Inspect concurrent writes, idempotency keys, and uniqueness constraints."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Refresh state, resolve the conflict, and retry with the updated intent."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/workflow-core/src/libs/problems/WorkflowProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `92`; \}\]; `status`: `409`; `title`: `"Conflict"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"workflow-core/workflow-definition-invalid"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#workflow-core-workflow-definition-invalid"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/workflow-core/src/libs/problems/WorkflowProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `31`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"NotFound"`; `code`: `"workflow-core/workflow-not-found"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#workflow-core-workflow-not-found"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The requested resource or route-visible record does not exist."`; `operatorAction`: `"Confirm tenant scoping, data retention, and backing-store lookup behavior."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Verify the identifier and refresh the resource list before retrying."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/workflow-core/src/libs/problems/WorkflowProblems.ts"`; `kind`: `"problem-class"`; `line`: `5`; \}\]; `status`: `404`; `title`: `"Not Found"`; \}\]
+> `readonly` **problems**: readonly \[\{ `category`: `"Forbidden"`; `code`: `"ACCESS_DENIED"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#access-denied"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The authenticated caller is not allowed to perform the requested action."`; `operatorAction`: `"Review policy, role, tenant, entitlement, and impersonation context."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Request the required permission or choose an allowed action."`; \}; `sources`: readonly \[\{ `column`: `15`; `file`: `"packages/transports-http/src/libs/PipelineRunner.ts"`; `kind`: `"problem-factory"`; `line`: `196`; \}\]; `status`: `403`; `title`: `"Forbidden"`; \}, \{ `category`: `"Forbidden"`; `code`: `"access-core/forbidden"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#access-core-forbidden"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The authenticated caller is not allowed to perform the requested action."`; `operatorAction`: `"Review policy, role, tenant, entitlement, and impersonation context."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Request the required permission or choose an allowed action."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/access-core/src/libs/guards/AccessGuard.ts"`; `kind`: `"problem-constructor"`; `line`: `17`; \}\]; `status`: `403`; `title`: `"Forbidden"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"ADMIN_LIFECYCLE_DEMO_INVARIANT"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#admin-lifecycle-demo-invariant"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/create-croco-app/templates/admin-console/apps/console-web/src/LifecycleAutomationDemo.tsx"`; `kind`: `"problem-constructor"`; `line`: `66`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"NotFound"`; `code`: `"admin-console/user-not-found"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#admin-console-user-not-found"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The requested resource or route-visible record does not exist."`; `operatorAction`: `"Confirm tenant scoping, data retention, and backing-store lookup behavior."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Verify the identifier and refresh the resource list before retrying."`; \}; `sources`: readonly \[\{ `column`: `79`; `file`: `"packages/create-croco-app/templates/admin-console/apps/api-server/src/controllers/adminSchemas.ts"`; `kind`: `"problem-metadata"`; `line`: `20`; \}\]; `status`: `404`; `title`: `"Not Found"`; \}, \{ `category`: `"Forbidden"`; `code`: `"admin-core/credit-operations-permission-denied"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#admin-core-credit-operations-permission-denied"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The authenticated caller is not allowed to perform the requested action."`; `operatorAction`: `"Review policy, role, tenant, entitlement, and impersonation context."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Request the required permission or choose an allowed action."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/create-croco-app/templates/admin-console/apps/api-server/src/controllers/adminSchemas.ts"`; `kind`: `"problem-metadata"`; `line`: `40`; \}\]; `status`: `403`; `title`: `"Forbidden"`; \}, \{ `category`: `"ValidationError"`; `code`: `"admin-core/credit-operations-validation-failed"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#admin-core-credit-operations-validation-failed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request or generated contract failed schema or semantic validation."`; `operatorAction`: `"Inspect schema diagnostics, generated contracts, and validation metadata."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Fix the invalid fields and retry with schema-conformant input."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/admin-core/src/libs/CreditOperations.ts"`; `kind`: `"problem-constructor"`; `line`: `286`; \}\]; `status`: `422`; `title`: `"Validation Error"`; \}, \{ `category`: `"ValidationError"`; `code`: `"admin-core/resource-validation-failed"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#admin-core-resource-validation-failed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request or generated contract failed schema or semantic validation."`; `operatorAction`: `"Inspect schema diagnostics, generated contracts, and validation metadata."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Fix the invalid fields and retry with schema-conformant input."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/admin-core/src/libs/AdminResource.ts"`; `kind`: `"problem-constructor"`; `line`: `79`; \}\]; `status`: `422`; `title`: `"Validation Error"`; \}, \{ `category`: `"ValidationError"`; `code`: `"admin-core/webhook-action-validation-failed"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#admin-core-webhook-action-validation-failed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request or generated contract failed schema or semantic validation."`; `operatorAction`: `"Inspect schema diagnostics, generated contracts, and validation metadata."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Fix the invalid fields and retry with schema-conformant input."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/admin-core/src/libs/WebhookOperations.ts"`; `kind`: `"problem-constructor"`; `line`: `187`; \}\]; `status`: `422`; `title`: `"Validation Error"`; \}, \{ `category`: `"ValidationError"`; `code`: `"admin-generated/contract-diagnostics"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#admin-generated-contract-diagnostics"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request or generated contract failed schema or semantic validation."`; `operatorAction`: `"Inspect schema diagnostics, generated contracts, and validation metadata."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Fix the invalid fields and retry with schema-conformant input."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/admin-generated/src/libs/generate.ts"`; `kind`: `"problem-constructor"`; `line`: `55`; \}\]; `status`: `422`; `title`: `"Validation Error"`; \}, \{ `category`: `"NotFound"`; `code`: `"ai-saas/model-not-found"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#ai-saas-model-not-found"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The requested resource or route-visible record does not exist."`; `operatorAction`: `"Confirm tenant scoping, data retention, and backing-store lookup behavior."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Verify the identifier and refresh the resource list before retrying."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/create-croco-app/templates/ai-saas/apps/api-server/src/aiProblems.ts"`; `kind`: `"problem-class"`; `line`: `31`; \}\]; `status`: `404`; `title`: `"Not Found"`; \}, \{ `category`: `"ValidationError"`; `code`: `"ai-saas/model-required"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#ai-saas-model-required"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request or generated contract failed schema or semantic validation."`; `operatorAction`: `"Inspect schema diagnostics, generated contracts, and validation metadata."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Fix the invalid fields and retry with schema-conformant input."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/create-croco-app/templates/ai-saas/apps/api-server/src/aiProblems.ts"`; `kind`: `"problem-class"`; `line`: `22`; \}\]; `status`: `422`; `title`: `"Validation Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"ai-saas/provider-unavailable"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#ai-saas-provider-unavailable"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/create-croco-app/templates/ai-saas/apps/api-server/src/aiProblems.ts"`; `kind`: `"problem-class"`; `line`: `62`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"TooManyRequests"`; `code`: `"ai-saas/quota-exceeded"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#ai-saas-quota-exceeded"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The caller exceeded a rate, quota, or concurrency limit."`; `operatorAction`: `"Check limiter state, quota configuration, and abuse signals."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Wait for the retry window or reduce request volume."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/create-croco-app/templates/ai-saas/apps/api-server/src/aiProblems.ts"`; `kind`: `"problem-class"`; `line`: `40`; \}\]; `status`: `429`; `title`: `"Too Many Requests"`; \}, \{ `category`: `"TooManyRequests"`; `code`: `"ai-saas/rate-limit-exceeded"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#ai-saas-rate-limit-exceeded"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The caller exceeded a rate, quota, or concurrency limit."`; `operatorAction`: `"Check limiter state, quota configuration, and abuse signals."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Wait for the retry window or reduce request volume."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/create-croco-app/templates/ai-saas/apps/api-server/src/aiProblems.ts"`; `kind`: `"problem-class"`; `line`: `53`; \}\]; `status`: `429`; `title`: `"Too Many Requests"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"ai-saas/smoke-failed"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#ai-saas-smoke-failed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/create-croco-app/templates/ai-saas/apps/api-server/src/aiProblems.ts"`; `kind`: `"problem-class"`; `line`: `75`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"NotFound"`; `code`: `"ai-saas/tenant-not-found"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#ai-saas-tenant-not-found"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The requested resource or route-visible record does not exist."`; `operatorAction`: `"Confirm tenant scoping, data retention, and backing-store lookup behavior."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Verify the identifier and refresh the resource list before retrying."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/create-croco-app/templates/ai-saas/apps/api-server/src/aiProblems.ts"`; `kind`: `"problem-class"`; `line`: `13`; \}\]; `status`: `404`; `title`: `"Not Found"`; \}, \{ `category`: `"ValidationError"`; `code`: `"ai-saas/tenant-required"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#ai-saas-tenant-required"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request or generated contract failed schema or semantic validation."`; `operatorAction`: `"Inspect schema diagnostics, generated contracts, and validation metadata."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Fix the invalid fields and retry with schema-conformant input."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/create-croco-app/templates/ai-saas/apps/api-server/src/aiProblems.ts"`; `kind`: `"problem-class"`; `line`: `4`; \}\]; `status`: `422`; `title`: `"Validation Error"`; \}, \{ `category`: `"Conflict"`; `code`: `"ALREADY_MEMBER"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#already-member"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request conflicts with current state or an idempotency constraint."`; `operatorAction`: `"Inspect concurrent writes, idempotency keys, and uniqueness constraints."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Refresh state, resolve the conflict, and retry with the updated intent."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/membership-core/src/libs/problems/MembershipProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `18`; \}\]; `status`: `409`; `title`: `"Conflict"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"analytics-posthog/capture-failed"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#analytics-posthog-capture-failed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/analytics-posthog/src/libs/problems/PostHogAnalyticsProblems.ts"`; `kind`: `"problem-class"`; `line`: `4`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"analytics-posthog/flush-failed"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#analytics-posthog-flush-failed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/analytics-posthog/src/libs/problems/PostHogAnalyticsProblems.ts"`; `kind`: `"problem-class"`; `line`: `19`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"analytics-posthog/readiness-failed"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#analytics-posthog-readiness-failed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/analytics-posthog/src/libs/problems/PostHogAnalyticsProblems.ts"`; `kind`: `"problem-class"`; `line`: `33`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"Unauthorized"`; `code`: `"API_KEY_EXPIRED"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#api-key-expired"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request did not include valid authentication credentials."`; `operatorAction`: `"Check authentication configuration, token issuer, and clock skew."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Sign in again or provide a valid credential."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/auth-core/src/libs/problems/AuthProblems.ts"`; `kind`: `"problem-class"`; `line`: `48`; \}\]; `status`: `401`; `title`: `"Unauthorized"`; \}, \{ `category`: `"NotFound"`; `code`: `"API_KEY_NOT_FOUND"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#api-key-not-found"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The requested resource or route-visible record does not exist."`; `operatorAction`: `"Confirm tenant scoping, data retention, and backing-store lookup behavior."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Verify the identifier and refresh the resource list before retrying."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/auth-core/src/libs/apikey/problems/ApiKeyNotFoundProblem.ts"`; `kind`: `"problem-class"`; `line`: `4`; \}\]; `status`: `404`; `title`: `"Not Found"`; \}, \{ `category`: `"Unauthorized"`; `code`: `"API_KEY_REVOKED"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#api-key-revoked"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request did not include valid authentication credentials."`; `operatorAction`: `"Check authentication configuration, token issuer, and clock skew."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Sign in again or provide a valid credential."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/auth-core/src/libs/problems/AuthProblems.ts"`; `kind`: `"problem-class"`; `line`: `56`; \}\]; `status`: `401`; `title`: `"Unauthorized"`; \}, \{ `category`: `"ValidationError"`; `code`: `"architecture-policy/manifest-json-parse"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#architecture-policy-manifest-json-parse"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request or generated contract failed schema or semantic validation."`; `operatorAction`: `"Inspect schema diagnostics, generated contracts, and validation metadata."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Fix the invalid fields and retry with schema-conformant input."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/architecture-policy/src/index.ts"`; `kind`: `"problem-constructor"`; `line`: `19`; \}\]; `status`: `422`; `title`: `"Validation Error"`; \}, \{ `category`: `"ValidationError"`; `code`: `"architecture-policy/manifest-schema-version"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#architecture-policy-manifest-schema-version"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request or generated contract failed schema or semantic validation."`; `operatorAction`: `"Inspect schema diagnostics, generated contracts, and validation metadata."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Fix the invalid fields and retry with schema-conformant input."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/architecture-policy/src/index.ts"`; `kind`: `"problem-constructor"`; `line`: `30`; \}\]; `status`: `422`; `title`: `"Validation Error"`; \}, \{ `category`: `"ValidationError"`; `code`: `"architecture-policy/manifest-shape"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#architecture-policy-manifest-shape"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request or generated contract failed schema or semantic validation."`; `operatorAction`: `"Inspect schema diagnostics, generated contracts, and validation metadata."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Fix the invalid fields and retry with schema-conformant input."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/architecture-policy/src/index.ts"`; `kind`: `"problem-constructor"`; `line`: `9`; \}\]; `status`: `422`; `title`: `"Validation Error"`; \}, \{ `category`: `"ValidationError"`; `code`: `"architecture-policy/package-json-parse"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#architecture-policy-package-json-parse"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request or generated contract failed schema or semantic validation."`; `operatorAction`: `"Inspect schema diagnostics, generated contracts, and validation metadata."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Fix the invalid fields and retry with schema-conformant input."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/architecture-policy/src/index.ts"`; `kind`: `"problem-constructor"`; `line`: `46`; \}\]; `status`: `422`; `title`: `"Validation Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"audit-core/auditable-decorator-misuse"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#audit-core-auditable-decorator-misuse"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/audit-core/src/libs/problems/AuditableDecoratorProblem.ts"`; `kind`: `"problem-class"`; `line`: `4`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"audit/insert-failed"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#audit-insert-failed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `13`; `file`: `"packages/audit-drizzle/src/libs/DrizzleAuditLogRepository.ts"`; `kind`: `"problem-factory"`; `line`: `137`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"auth-better-auth/authentication-failed"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#auth-better-auth-authentication-failed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/auth-better-auth/src/libs/problems/BetterAuthAuthenticationProblem.ts"`; `kind`: `"problem-class"`; `line`: `8`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"auth-better-auth/invalid-session-payload"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#auth-better-auth-invalid-session-payload"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/auth-better-auth/src/libs/problems/BetterAuthInvalidSessionProblem.ts"`; `kind`: `"problem-class"`; `line`: `7`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"BadRequest"`; `code`: `"auth-better-auth/invalid-webhook-payload"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#auth-better-auth-invalid-webhook-payload"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The caller sent malformed input or unsupported request options."`; `operatorAction`: `"Inspect validation details and request logs; do not retry unchanged input."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Correct the request input and retry after validation passes."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/auth-better-auth/src/libs/problems/WebhookProblems.ts"`; `kind`: `"problem-class"`; `line`: `23`; \}\]; `status`: `400`; `title`: `"Bad Request"`; \}, \{ `category`: `"Unauthorized"`; `code`: `"auth-better-auth/invalid-webhook-signature"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#auth-better-auth-invalid-webhook-signature"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request did not include valid authentication credentials."`; `operatorAction`: `"Check authentication configuration, token issuer, and clock skew."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Sign in again or provide a valid credential."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/auth-better-auth/src/libs/problems/WebhookProblems.ts"`; `kind`: `"problem-class"`; `line`: `7`; \}\]; `status`: `401`; `title`: `"Unauthorized"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"auth-better-auth/not-initialized"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#auth-better-auth-not-initialized"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/auth-better-auth/src/libs/problems/AuthProblems.ts"`; `kind`: `"problem-class"`; `line`: `7`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"auth-better-auth/session-lookup-failed"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#auth-better-auth-session-lookup-failed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/auth-better-auth/src/libs/problems/BetterAuthSessionLookupProblem.ts"`; `kind`: `"problem-class"`; `line`: `7`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"NotFound"`; `code`: `"auth-better-auth/session-not-found"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#auth-better-auth-session-not-found"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The requested resource or route-visible record does not exist."`; `operatorAction`: `"Confirm tenant scoping, data retention, and backing-store lookup behavior."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Verify the identifier and refresh the resource list before retrying."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/auth-better-auth/src/libs/problems/AuthProblems.ts"`; `kind`: `"problem-class"`; `line`: `23`; \}\]; `status`: `404`; `title`: `"Not Found"`; \}, \{ `category`: `"NotFound"`; `code`: `"auth-better-auth/user-not-found"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#auth-better-auth-user-not-found"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The requested resource or route-visible record does not exist."`; `operatorAction`: `"Confirm tenant scoping, data retention, and backing-store lookup behavior."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Verify the identifier and refresh the resource list before retrying."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/auth-better-auth/src/libs/problems/AuthProblems.ts"`; `kind`: `"problem-class"`; `line`: `39`; \}\]; `status`: `404`; `title`: `"Not Found"`; \}, \{ `category`: `"Conflict"`; `code`: `"auth-clerk/duplicate-tenant-mapping"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#auth-clerk-duplicate-tenant-mapping"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request conflicts with current state or an idempotency constraint."`; `operatorAction`: `"Inspect concurrent writes, idempotency keys, and uniqueness constraints."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Refresh state, resolve the conflict, and retry with the updated intent."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/auth-clerk/src/libs/problems/ClerkProblems.ts"`; `kind`: `"problem-class"`; `line`: `94`; \}\]; `status`: `409`; `title`: `"Conflict"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"auth-clerk/external-service-error"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#auth-clerk-external-service-error"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/auth-clerk/src/libs/problems/ClerkProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `121`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"ValidationError"`; `code`: `"auth-clerk/invalid-webhook-payload"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#auth-clerk-invalid-webhook-payload"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request or generated contract failed schema or semantic validation."`; `operatorAction`: `"Inspect schema diagnostics, generated contracts, and validation metadata."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Fix the invalid fields and retry with schema-conformant input."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/auth-clerk/src/libs/problems/ClerkProblems.ts"`; `kind`: `"problem-class"`; `line`: `19`; \}\]; `status`: `422`; `title`: `"Validation Error"`; \}, \{ `category`: `"Unauthorized"`; `code`: `"auth-clerk/malformed-claim"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#auth-clerk-malformed-claim"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request did not include valid authentication credentials."`; `operatorAction`: `"Check authentication configuration, token issuer, and clock skew."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Sign in again or provide a valid credential."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/auth-clerk/src/libs/problems/ClerkProblems.ts"`; `kind`: `"problem-class"`; `line`: `83`; \}\]; `status`: `401`; `title`: `"Unauthorized"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"auth-clerk/public-user-data-missing"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#auth-clerk-public-user-data-missing"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/auth-clerk/src/libs/problems/ClerkProblems.ts"`; `kind`: `"problem-class"`; `line`: `109`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"Unauthorized"`; `code`: `"auth-clerk/token-verification-failed"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#auth-clerk-token-verification-failed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request did not include valid authentication credentials."`; `operatorAction`: `"Check authentication configuration, token issuer, and clock skew."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Sign in again or provide a valid credential."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/auth-clerk/src/libs/problems/ClerkProblems.ts"`; `kind`: `"problem-class"`; `line`: `36`; \}\]; `status`: `401`; `title`: `"Unauthorized"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"auth-clerk/token-verification-upstream-failed"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#auth-clerk-token-verification-upstream-failed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/auth-clerk/src/libs/problems/ClerkProblems.ts"`; `kind`: `"problem-class"`; `line`: `60`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"Unauthorized"`; `code`: `"auth-clerk/webhook-verification-failed"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#auth-clerk-webhook-verification-failed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request did not include valid authentication credentials."`; `operatorAction`: `"Check authentication configuration, token issuer, and clock skew."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Sign in again or provide a valid credential."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/auth-clerk/src/libs/problems/ClerkProblems.ts"`; `kind`: `"problem-class"`; `line`: `8`; \}\]; `status`: `401`; `title`: `"Unauthorized"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"auth-core/api-key-creation-failed"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#auth-core-api-key-creation-failed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/auth-core/src/libs/problems/AuthProblems.ts"`; `kind`: `"problem-class"`; `line`: `80`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"Conflict"`; `code`: `"auth-core/api-key-rotation-conflict"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#auth-core-api-key-rotation-conflict"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request conflicts with current state or an idempotency constraint."`; `operatorAction`: `"Inspect concurrent writes, idempotency keys, and uniqueness constraints."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Refresh state, resolve the conflict, and retry with the updated intent."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/auth-core/src/libs/problems/AuthProblems.ts"`; `kind`: `"problem-class"`; `line`: `88`; \}\]; `status`: `409`; `title`: `"Conflict"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"auth-core/api-key-rotation-protection-failed"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#auth-core-api-key-rotation-protection-failed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/auth-core/src/libs/apikey/ApiKeyRotationProtector.ts"`; `kind`: `"problem-constructor"`; `line`: `28`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"auth-core/auth-provider-unavailable"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#auth-core-auth-provider-unavailable"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/auth-core/src/libs/problems/AuthProblems.ts"`; `kind`: `"problem-class"`; `line`: `21`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"ValidationError"`; `code`: `"auth-core/invalid-api-key-rotation-idempotency-key"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#auth-core-invalid-api-key-rotation-idempotency-key"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request or generated contract failed schema or semantic validation."`; `operatorAction`: `"Inspect schema diagnostics, generated contracts, and validation metadata."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Fix the invalid fields and retry with schema-conformant input."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/auth-core/src/libs/problems/AuthProblems.ts"`; `kind`: `"problem-class"`; `line`: `96`; \}\]; `status`: `422`; `title`: `"Validation Error"`; \}, \{ `category`: `"ValidationError"`; `code`: `"auth-core/invalid-permission-action"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#auth-core-invalid-permission-action"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request or generated contract failed schema or semantic validation."`; `operatorAction`: `"Inspect schema diagnostics, generated contracts, and validation metadata."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Fix the invalid fields and retry with schema-conformant input."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/auth-core/src/libs/problems/AuthProblems.ts"`; `kind`: `"problem-class"`; `line`: `72`; \}\]; `status`: `422`; `title`: `"Validation Error"`; \}, \{ `category`: `"ValidationError"`; `code`: `"auth-core/invalid-permission-format"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#auth-core-invalid-permission-format"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request or generated contract failed schema or semantic validation."`; `operatorAction`: `"Inspect schema diagnostics, generated contracts, and validation metadata."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Fix the invalid fields and retry with schema-conformant input."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/auth-core/src/libs/problems/AuthProblems.ts"`; `kind`: `"problem-class"`; `line`: `64`; \}\]; `status`: `422`; `title`: `"Validation Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"auth-core/invalid-route-metadata-target"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#auth-core-invalid-route-metadata-target"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"An authentication guard received a route metadata target that was neither an object nor a function."`; `operatorAction`: `"Inspect the route adapter metadata target and ensure it returns the controller object or constructor before handling requests."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Do not retry the unchanged request; ask the service operator to correct the route metadata configuration."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/auth-core/src/libs/problems/AuthProblems.ts"`; `kind`: `"problem-class"`; `line`: `35`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"BadRequest"`; `code`: `"BAD_REQUEST"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#bad-request"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The caller sent malformed input or unsupported request options."`; `operatorAction`: `"Inspect validation details and request logs; do not retry unchanged input."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Correct the request input and retry after validation passes."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/access-core/src/libs/guards/AccessGuard.ts"`; `kind`: `"problem-constructor"`; `line`: `11`; \}\]; `status`: `400`; `title`: `"Bad Request"`; \}, \{ `category`: `"BadRequest"`; `code`: `"batch-qstash/invalid-publish-request"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#batch-qstash-invalid-publish-request"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The caller sent malformed input or unsupported request options."`; `operatorAction`: `"Inspect validation details and request logs; do not retry unchanged input."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Correct the request input and retry after validation passes."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/batch-qstash/src/libs/problems/QStashBatchProblems.ts"`; `kind`: `"problem-class"`; `line`: `18`; \}\]; `status`: `400`; `title`: `"Bad Request"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"batch-qstash/missing-config"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#batch-qstash-missing-config"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/batch-qstash/src/libs/problems/QStashBatchProblems.ts"`; `kind`: `"problem-class"`; `line`: `4`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"BILLING_STATUS_MAPPING_FAILED"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#billing-status-mapping-failed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/billing-polar/src/libs/problems/BillingStatusMappingProblem.ts"`; `kind`: `"problem-class"`; `line`: `4`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"Conflict"`; `code`: `"billing-polar/checkout-idempotency-conflict"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#billing-polar-checkout-idempotency-conflict"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request conflicts with current state or an idempotency constraint."`; `operatorAction`: `"Inspect concurrent writes, idempotency keys, and uniqueness constraints."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Refresh state, resolve the conflict, and retry with the updated intent."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/billing-polar/src/libs/problems/PolarBillingProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `54`; \}\]; `status`: `409`; `title`: `"Conflict"`; \}, \{ `category`: `"NotFound"`; `code`: `"billing-polar/customer-not-found"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#billing-polar-customer-not-found"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The requested resource or route-visible record does not exist."`; `operatorAction`: `"Confirm tenant scoping, data retention, and backing-store lookup behavior."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Verify the identifier and refresh the resource list before retrying."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/billing-polar/src/libs/problems/PolarBillingProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `72`; \}\]; `status`: `404`; `title`: `"Not Found"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"billing-polar/missing-config"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#billing-polar-missing-config"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/billing-polar/src/libs/problems/PolarBillingProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `18`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"billing-polar/retryable-upstream"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#billing-polar-retryable-upstream"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/billing-polar/src/libs/problems/PolarBillingProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `98`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"NotFound"`; `code`: `"billing-polar/subscription-not-found"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#billing-polar-subscription-not-found"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The requested resource or route-visible record does not exist."`; `operatorAction`: `"Confirm tenant scoping, data retention, and backing-store lookup behavior."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Verify the identifier and refresh the resource list before retrying."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/billing-polar/src/libs/problems/PolarBillingProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `85`; \}\]; `status`: `404`; `title`: `"Not Found"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"billing-polar/terminal-upstream"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#billing-polar-terminal-upstream"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/billing-polar/src/libs/problems/PolarBillingProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `114`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"ValidationError"`; `code`: `"billing-polar/validation-failed"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#billing-polar-validation-failed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request or generated contract failed schema or semantic validation."`; `operatorAction`: `"Inspect schema diagnostics, generated contracts, and validation metadata."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Fix the invalid fields and retry with schema-conformant input."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/billing-polar/src/libs/problems/PolarBillingProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `38`; \}\]; `status`: `422`; `title`: `"Validation Error"`; \}, \{ `category`: `"NotFound"`; `code`: `"billing/account-not-found"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#billing-account-not-found"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The requested resource or route-visible record does not exist."`; `operatorAction`: `"Confirm tenant scoping, data retention, and backing-store lookup behavior."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Verify the identifier and refresh the resource list before retrying."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/billing-core/src/libs/problems/BillingProblems.ts"`; `kind`: `"problem-class"`; `line`: `32`; \}\]; `status`: `404`; `title`: `"Not Found"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"billing/checkout-creation-failed"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#billing-checkout-creation-failed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/billing-core/src/libs/problems/BillingProblems.ts"`; `kind`: `"problem-class"`; `line`: `92`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"Conflict"`; `code`: `"billing/checkout-in-progress"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#billing-checkout-in-progress"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request conflicts with current state or an idempotency constraint."`; `operatorAction`: `"Inspect concurrent writes, idempotency keys, and uniqueness constraints."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Refresh state, resolve the conflict, and retry with the updated intent."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/billing-core/src/libs/problems/BillingProblems.ts"`; `kind`: `"problem-class"`; `line`: `100`; \}\]; `status`: `409`; `title`: `"Conflict"`; \}, \{ `category`: `"BadRequest"`; `code`: `"billing/invalid-lifecycle-idempotency-key"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#billing-invalid-lifecycle-idempotency-key"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The caller sent malformed input or unsupported request options."`; `operatorAction`: `"Inspect validation details and request logs; do not retry unchanged input."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Correct the request input and retry after validation passes."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/billing-core/src/libs/problems/BillingProblems.ts"`; `kind`: `"problem-class"`; `line`: `80`; \}\]; `status`: `400`; `title`: `"Bad Request"`; \}, \{ `category`: `"BadRequest"`; `code`: `"billing/invalid-money-amount"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#billing-invalid-money-amount"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The caller sent malformed input or unsupported request options."`; `operatorAction`: `"Inspect validation details and request logs; do not retry unchanged input."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Correct the request input and retry after validation passes."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/billing-core/src/libs/problems/BillingProblems.ts"`; `kind`: `"problem-class"`; `line`: `113`; \}\]; `status`: `400`; `title`: `"Bad Request"`; \}, \{ `category`: `"BadRequest"`; `code`: `"billing/invalid-money-currency"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#billing-invalid-money-currency"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The caller sent malformed input or unsupported request options."`; `operatorAction`: `"Inspect validation details and request logs; do not retry unchanged input."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Correct the request input and retry after validation passes."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/billing-core/src/libs/problems/BillingProblems.ts"`; `kind`: `"problem-class"`; `line`: `121`; \}\]; `status`: `400`; `title`: `"Bad Request"`; \}, \{ `category`: `"BadRequest"`; `code`: `"billing/invalid-plan-release-schedule"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#billing-invalid-plan-release-schedule"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The caller sent malformed input or unsupported request options."`; `operatorAction`: `"Inspect validation details and request logs; do not retry unchanged input."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Correct the request input and retry after validation passes."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/billing-core/src/libs/problems/PlanReleaseProblems.ts"`; `kind`: `"problem-class"`; `line`: `69`; \}\]; `status`: `400`; `title`: `"Bad Request"`; \}, \{ `category`: `"BusinessRuleViolation"`; `code`: `"billing/invalid-plan-release-transition"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#billing-invalid-plan-release-transition"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request is syntactically valid but violates a domain rule."`; `operatorAction`: `"Review domain policy, entitlement, quota, and lifecycle rule evidence."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Change the workflow state or request values so the business rule is satisfied."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/billing-core/src/libs/problems/PlanReleaseProblems.ts"`; `kind`: `"problem-class"`; `line`: `21`; \}\]; `status`: `422`; `title`: `"Business Rule Violation"`; \}, \{ `category`: `"BadRequest"`; `code`: `"billing/invalid-plan-version-definition"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#billing-invalid-plan-version-definition"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The caller sent malformed input or unsupported request options."`; `operatorAction`: `"Inspect validation details and request logs; do not retry unchanged input."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Correct the request input and retry after validation passes."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/billing-core/src/libs/problems/BillingProblems.ts"`; `kind`: `"problem-class"`; `line`: `157`; \}\]; `status`: `400`; `title`: `"Bad Request"`; \}, \{ `category`: `"BadRequest"`; `code`: `"billing/invalid-plan-version-ref"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#billing-invalid-plan-version-ref"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The caller sent malformed input or unsupported request options."`; `operatorAction`: `"Inspect validation details and request logs; do not retry unchanged input."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Correct the request input and retry after validation passes."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/billing-core/src/libs/problems/BillingProblems.ts"`; `kind`: `"problem-class"`; `line`: `149`; \}\]; `status`: `400`; `title`: `"Bad Request"`; \}, \{ `category`: `"BadRequest"`; `code`: `"billing/invalid-subscription-quantity"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#billing-invalid-subscription-quantity"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The caller sent malformed input or unsupported request options."`; `operatorAction`: `"Inspect validation details and request logs; do not retry unchanged input."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Correct the request input and retry after validation passes."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/billing-core/src/libs/problems/BillingProblems.ts"`; `kind`: `"problem-class"`; `line`: `216`; \}\]; `status`: `400`; `title`: `"Bad Request"`; \}, \{ `category`: `"Conflict"`; `code`: `"billing/lifecycle-command-conflict"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#billing-lifecycle-command-conflict"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request conflicts with current state or an idempotency constraint."`; `operatorAction`: `"Inspect concurrent writes, idempotency keys, and uniqueness constraints."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Refresh state, resolve the conflict, and retry with the updated intent."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/billing-core/src/libs/problems/BillingProblems.ts"`; `kind`: `"problem-class"`; `line`: `48`; \}\]; `status`: `409`; `title`: `"Conflict"`; \}, \{ `category`: `"Conflict"`; `code`: `"billing/lifecycle-command-in-progress"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#billing-lifecycle-command-in-progress"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request conflicts with current state or an idempotency constraint."`; `operatorAction`: `"Inspect concurrent writes, idempotency keys, and uniqueness constraints."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Refresh state, resolve the conflict, and retry with the updated intent."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/billing-core/src/libs/problems/BillingProblems.ts"`; `kind`: `"problem-class"`; `line`: `60`; \}\]; `status`: `409`; `title`: `"Conflict"`; \}, \{ `category`: `"NotFound"`; `code`: `"billing/lifecycle-command-not-found"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#billing-lifecycle-command-not-found"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The requested resource or route-visible record does not exist."`; `operatorAction`: `"Confirm tenant scoping, data retention, and backing-store lookup behavior."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Verify the identifier and refresh the resource list before retrying."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/billing-core/src/libs/problems/BillingProblems.ts"`; `kind`: `"problem-class"`; `line`: `72`; \}\]; `status`: `404`; `title`: `"Not Found"`; \}, \{ `category`: `"BusinessRuleViolation"`; `code`: `"billing/money-currency-mismatch"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#billing-money-currency-mismatch"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request is syntactically valid but violates a domain rule."`; `operatorAction`: `"Review domain policy, entitlement, quota, and lifecycle rule evidence."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Change the workflow state or request values so the business rule is satisfied."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/billing-core/src/libs/problems/BillingProblems.ts"`; `kind`: `"problem-class"`; `line`: `129`; \}\]; `status`: `422`; `title`: `"Business Rule Violation"`; \}, \{ `category`: `"BadRequest"`; `code`: `"billing/money-division-by-zero"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#billing-money-division-by-zero"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The caller sent malformed input or unsupported request options."`; `operatorAction`: `"Inspect validation details and request logs; do not retry unchanged input."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Correct the request input and retry after validation passes."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/billing-core/src/libs/problems/BillingProblems.ts"`; `kind`: `"problem-class"`; `line`: `141`; \}\]; `status`: `400`; `title`: `"Bad Request"`; \}, \{ `category`: `"Conflict"`; `code`: `"billing/overlapping-plan-effective-period"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#billing-overlapping-plan-effective-period"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request conflicts with current state or an idempotency constraint."`; `operatorAction`: `"Inspect concurrent writes, idempotency keys, and uniqueness constraints."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Refresh state, resolve the conflict, and retry with the updated intent."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/billing-core/src/libs/problems/PlanReleaseProblems.ts"`; `kind`: `"problem-class"`; `line`: `34`; \}\]; `status`: `409`; `title`: `"Conflict"`; \}, \{ `category`: `"ValidationError"`; `code`: `"billing/plan-release-provider-capability-failed"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#billing-plan-release-provider-capability-failed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request or generated contract failed schema or semantic validation."`; `operatorAction`: `"Inspect schema diagnostics, generated contracts, and validation metadata."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Fix the invalid fields and retry with schema-conformant input."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/billing-core/src/libs/problems/PlanReleaseProblems.ts"`; `kind`: `"problem-class"`; `line`: `58`; \}\]; `status`: `422`; `title`: `"Validation Error"`; \}, \{ `category`: `"Conflict"`; `code`: `"billing/plan-release-publish-conflict"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#billing-plan-release-publish-conflict"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request conflicts with current state or an idempotency constraint."`; `operatorAction`: `"Inspect concurrent writes, idempotency keys, and uniqueness constraints."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Refresh state, resolve the conflict, and retry with the updated intent."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/billing-core/src/libs/problems/PlanReleaseProblems.ts"`; `kind`: `"problem-class"`; `line`: `78`; \}\]; `status`: `409`; `title`: `"Conflict"`; \}, \{ `category`: `"ValidationError"`; `code`: `"billing/plan-release-validation-failed"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#billing-plan-release-validation-failed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request or generated contract failed schema or semantic validation."`; `operatorAction`: `"Inspect schema diagnostics, generated contracts, and validation metadata."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Fix the invalid fields and retry with schema-conformant input."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/billing-core/src/libs/problems/PlanReleaseProblems.ts"`; `kind`: `"problem-class"`; `line`: `47`; \}\]; `status`: `422`; `title`: `"Validation Error"`; \}, \{ `category`: `"Conflict"`; `code`: `"billing/plan-version-already-published"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#billing-plan-version-already-published"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request conflicts with current state or an idempotency constraint."`; `operatorAction`: `"Inspect concurrent writes, idempotency keys, and uniqueness constraints."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Refresh state, resolve the conflict, and retry with the updated intent."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/billing-core/src/libs/problems/BillingProblems.ts"`; `kind`: `"problem-class"`; `line`: `165`; \}\]; `status`: `409`; `title`: `"Conflict"`; \}, \{ `category`: `"Conflict"`; `code`: `"billing/plan-version-conflict"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#billing-plan-version-conflict"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request conflicts with current state or an idempotency constraint."`; `operatorAction`: `"Inspect concurrent writes, idempotency keys, and uniqueness constraints."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Refresh state, resolve the conflict, and retry with the updated intent."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/billing-core/src/libs/problems/BillingProblems.ts"`; `kind`: `"problem-class"`; `line`: `173`; \}\]; `status`: `409`; `title`: `"Conflict"`; \}, \{ `category`: `"NotImplemented"`; `code`: `"billing/provider-capability-unavailable"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#billing-provider-capability-unavailable"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The requested capability is not supported by this runtime or adapter."`; `operatorAction`: `"Check runtime capability declarations and provider maturity documentation."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Use a supported capability or choose an adapter/runtime that provides it."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/billing-core/src/libs/problems/BillingProblems.ts"`; `kind`: `"problem-class"`; `line`: `6`; \}\]; `status`: `501`; `title`: `"Not Implemented"`; \}, \{ `category`: `"Conflict"`; `code`: `"billing/stale-plan-release-revision"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#billing-stale-plan-release-revision"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request conflicts with current state or an idempotency constraint."`; `operatorAction`: `"Inspect concurrent writes, idempotency keys, and uniqueness constraints."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Refresh state, resolve the conflict, and retry with the updated intent."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/billing-core/src/libs/problems/PlanReleaseProblems.ts"`; `kind`: `"problem-class"`; `line`: `7`; \}\]; `status`: `409`; `title`: `"Conflict"`; \}, \{ `category`: `"NotFound"`; `code`: `"billing/subscription-not-found"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#billing-subscription-not-found"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The requested resource or route-visible record does not exist."`; `operatorAction`: `"Confirm tenant scoping, data retention, and backing-store lookup behavior."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Verify the identifier and refresh the resource list before retrying."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/billing-core/src/libs/problems/BillingProblems.ts"`; `kind`: `"problem-class"`; `line`: `24`; \}\]; `status`: `404`; `title`: `"Not Found"`; \}, \{ `category`: `"BusinessRuleViolation"`; `code`: `"billing/subscription-plan-version-mismatch"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#billing-subscription-plan-version-mismatch"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request is syntactically valid but violates a domain rule."`; `operatorAction`: `"Review domain policy, entitlement, quota, and lifecycle rule evidence."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Change the workflow state or request values so the business rule is satisfied."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/billing-core/src/libs/problems/BillingProblems.ts"`; `kind`: `"problem-class"`; `line`: `203`; \}\]; `status`: `422`; `title`: `"Business Rule Violation"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"billing/subscription-quantity-provider-mismatch"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#billing-subscription-quantity-provider-mismatch"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/billing-core/src/libs/problems/BillingProblems.ts"`; `kind`: `"problem-class"`; `line`: `262`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"Conflict"`; `code`: `"billing/subscription-quantity-provider-source-ahead"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#billing-subscription-quantity-provider-source-ahead"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request conflicts with current state or an idempotency constraint."`; `operatorAction`: `"Inspect concurrent writes, idempotency keys, and uniqueness constraints."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Refresh state, resolve the conflict, and retry with the updated intent."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/billing-core/src/libs/problems/BillingProblems.ts"`; `kind`: `"problem-class"`; `line`: `275`; \}\]; `status`: `409`; `title`: `"Conflict"`; \}, \{ `category`: `"Conflict"`; `code`: `"billing/subscription-quantity-reconciliation-conflict"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#billing-subscription-quantity-reconciliation-conflict"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request conflicts with current state or an idempotency constraint."`; `operatorAction`: `"Inspect concurrent writes, idempotency keys, and uniqueness constraints."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Refresh state, resolve the conflict, and retry with the updated intent."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/billing-core/src/libs/problems/BillingProblems.ts"`; `kind`: `"problem-class"`; `line`: `241`; \}\]; `status`: `409`; `title`: `"Conflict"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"billing/subscription-quantity-reconciliation-failed"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#billing-subscription-quantity-reconciliation-failed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/billing-core/src/libs/problems/BillingProblems.ts"`; `kind`: `"problem-class"`; `line`: `251`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"Conflict"`; `code`: `"billing/subscription-quantity-source-mismatch"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#billing-subscription-quantity-source-mismatch"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request conflicts with current state or an idempotency constraint."`; `operatorAction`: `"Inspect concurrent writes, idempotency keys, and uniqueness constraints."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Refresh state, resolve the conflict, and retry with the updated intent."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/billing-core/src/libs/problems/BillingProblems.ts"`; `kind`: `"problem-class"`; `line`: `224`; \}\]; `status`: `409`; `title`: `"Conflict"`; \}, \{ `category`: `"NotFound"`; `code`: `"billing/unknown-plan-version"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#billing-unknown-plan-version"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The requested resource or route-visible record does not exist."`; `operatorAction`: `"Confirm tenant scoping, data retention, and backing-store lookup behavior."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Verify the identifier and refresh the resource list before retrying."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/billing-core/src/libs/problems/BillingProblems.ts"`; `kind`: `"problem-class"`; `line`: `181`; \}\]; `status`: `404`; `title`: `"Not Found"`; \}, \{ `category`: `"NotFound"`; `code`: `"billing/unknown-provider-plan-mapping"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#billing-unknown-provider-plan-mapping"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The requested resource or route-visible record does not exist."`; `operatorAction`: `"Confirm tenant scoping, data retention, and backing-store lookup behavior."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Verify the identifier and refresh the resource list before retrying."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/billing-core/src/libs/problems/BillingProblems.ts"`; `kind`: `"problem-class"`; `line`: `189`; \}\]; `status`: `404`; `title`: `"Not Found"`; \}, \{ `category`: `"Conflict"`; `code`: `"billing/webhook-already-processed"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#billing-webhook-already-processed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request conflicts with current state or an idempotency constraint."`; `operatorAction`: `"Inspect concurrent writes, idempotency keys, and uniqueness constraints."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Refresh state, resolve the conflict, and retry with the updated intent."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/billing-core/src/libs/problems/BillingProblems.ts"`; `kind`: `"problem-class"`; `line`: `40`; \}\]; `status`: `409`; `title`: `"Conflict"`; \}, \{ `category`: `"Forbidden"`; `code`: `"BLOCKED_DURING_IMPERSONATION"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#blocked-during-impersonation"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The authenticated caller is not allowed to perform the requested action."`; `operatorAction`: `"Review policy, role, tenant, entitlement, and impersonation context."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Request the required permission or choose an allowed action."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/impersonation-core/src/libs/problems/ImpersonationProblems.ts"`; `kind`: `"problem-class"`; `line`: `49`; \}\]; `status`: `403`; `title`: `"Forbidden"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"cache-core/invalid-decorator-config"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#cache-core-invalid-decorator-config"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/cache-core/src/libs/problems/CacheDecoratorProblems.ts"`; `kind`: `"problem-class"`; `line`: `12`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"ValidationError"`; `code`: `"cache-core/invalid-ttl"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#cache-core-invalid-ttl"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request or generated contract failed schema or semantic validation."`; `operatorAction`: `"Inspect schema diagnostics, generated contracts, and validation metadata."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Fix the invalid fields and retry with schema-conformant input."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/cache-core/src/libs/problems/CacheStoreProblems.ts"`; `kind`: `"problem-class"`; `line`: `7`; \}\]; `status`: `422`; `title`: `"Validation Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"cache-core/invalidation-assertion-failed"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#cache-core-invalidation-assertion-failed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/cache-core/src/libs/problems/CacheDecoratorProblems.ts"`; `kind`: `"problem-class"`; `line`: `102`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"cache-core/invalidation-capability-unsupported"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#cache-core-invalidation-capability-unsupported"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/cache-core/src/libs/problems/CacheDecoratorProblems.ts"`; `kind`: `"problem-class"`; `line`: `55`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"ValidationError"`; `code`: `"cache-core/invalidation-event-unknown"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#cache-core-invalidation-event-unknown"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request or generated contract failed schema or semantic validation."`; `operatorAction`: `"Inspect schema diagnostics, generated contracts, and validation metadata."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Fix the invalid fields and retry with schema-conformant input."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/cache-core/src/libs/problems/CacheDecoratorProblems.ts"`; `kind`: `"problem-class"`; `line`: `41`; \}\]; `status`: `422`; `title`: `"Validation Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"cache-core/invalidation-failed"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#cache-core-invalidation-failed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/cache-core/src/libs/problems/CacheDecoratorProblems.ts"`; `kind`: `"problem-class"`; `line`: `72`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"ValidationError"`; `code`: `"cache-core/invalidation-graph-invalid"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#cache-core-invalidation-graph-invalid"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request or generated contract failed schema or semantic validation."`; `operatorAction`: `"Inspect schema diagnostics, generated contracts, and validation metadata."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Fix the invalid fields and retry with schema-conformant input."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/cache-core/src/libs/problems/CacheDecoratorProblems.ts"`; `kind`: `"problem-class"`; `line`: `27`; \}\]; `status`: `422`; `title`: `"Validation Error"`; \}, \{ `category`: `"TooManyRequests"`; `code`: `"CIRCUIT_BREAKER_OPEN"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#circuit-breaker-open"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The caller exceeded a rate, quota, or concurrency limit."`; `operatorAction`: `"Check limiter state, quota configuration, and abuse signals."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Wait for the retry window or reduce request volume."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/retry-core/src/libs/errors/CircuitBreakerOpenProblem.ts"`; `kind`: `"problem-class"`; `line`: `7`; \}\]; `status`: `429`; `title`: `"Too Many Requests"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"cloudflare/images-invalid-ttl"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#cloudflare-images-invalid-ttl"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `13`; `file`: `"packages/storage-cloudflare/src/libs/CloudflareImagesProvider.ts"`; `kind`: `"problem-factory"`; `line`: `55`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"cloudflare/images-null-result"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#cloudflare-images-null-result"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `13`; `file`: `"packages/storage-cloudflare/src/libs/CloudflareImagesProvider.ts"`; `kind`: `"problem-factory"`; `line`: `277`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"cloudflare/images-upload-intent-null-result"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#cloudflare-images-upload-intent-null-result"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `13`; `file`: `"packages/storage-cloudflare/src/libs/CloudflareImagesProvider.ts"`; `kind`: `"problem-factory"`; `line`: `353`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"BadRequest"`; `code`: `"CONFLICTING_PAGINATION"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#conflicting-pagination"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The caller sent malformed input or unsupported request options."`; `operatorAction`: `"Inspect validation details and request logs; do not retry unchanged input."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Correct the request input and retry after validation passes."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/pagination-core/src/libs/problems.ts"`; `kind`: `"problem-class"`; `line`: `17`; \}\]; `status`: `400`; `title`: `"Bad Request"`; \}, \{ `category`: `"ValidationError"`; `code`: `"create-croco-app/directory-not-empty"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#create-croco-app-directory-not-empty"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request or generated contract failed schema or semantic validation."`; `operatorAction`: `"Inspect schema diagnostics, generated contracts, and validation metadata."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Fix the invalid fields and retry with schema-conformant input."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/create-croco-app/src/libs/problems/DirectoryNotEmptyProblem.ts"`; `kind`: `"problem-class"`; `line`: `4`; \}\]; `status`: `422`; `title`: `"Validation Error"`; \}, \{ `category`: `"ValidationError"`; `code`: `"create-croco-app/invalid-cli-option"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#create-croco-app-invalid-cli-option"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request or generated contract failed schema or semantic validation."`; `operatorAction`: `"Inspect schema diagnostics, generated contracts, and validation metadata."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Fix the invalid fields and retry with schema-conformant input."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/create-croco-app/src/libs/problems/InvalidCliOptionProblem.ts"`; `kind`: `"problem-class"`; `line`: `4`; \}\]; `status`: `422`; `title`: `"Validation Error"`; \}, \{ `category`: `"ValidationError"`; `code`: `"create-croco-app/invalid-goal-option"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#create-croco-app-invalid-goal-option"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request or generated contract failed schema or semantic validation."`; `operatorAction`: `"Inspect schema diagnostics, generated contracts, and validation metadata."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Fix the invalid fields and retry with schema-conformant input."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/create-croco-app/src/libs/problems/InvalidGoalOptionProblem.ts"`; `kind`: `"problem-class"`; `line`: `5`; \}\]; `status`: `422`; `title`: `"Validation Error"`; \}, \{ `category`: `"ValidationError"`; `code`: `"create-croco-app/invalid-saas-preset-option"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#create-croco-app-invalid-saas-preset-option"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request or generated contract failed schema or semantic validation."`; `operatorAction`: `"Inspect schema diagnostics, generated contracts, and validation metadata."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Fix the invalid fields and retry with schema-conformant input."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/create-croco-app/src/libs/problems/InvalidSaasPresetOptionProblem.ts"`; `kind`: `"problem-class"`; `line`: `4`; \}\]; `status`: `422`; `title`: `"Validation Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"create-croco-app/lambda-telemetry-boundary"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#create-croco-app-lambda-telemetry-boundary"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/create-croco-app/templates/addons/lambda/apps/graphql-api/src/telemetryFlush.ts"`; `kind`: `"problem-class"`; `line`: `10`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"create-croco-app/unexpected-failure"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#create-croco-app-unexpected-failure"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/create-croco-app/src/cli-result.ts"`; `kind`: `"problem-class"`; `line`: `28`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"ValidationError"`; `code`: `"create-croco-app/unsupported-node-version"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#create-croco-app-unsupported-node-version"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The detected Node.js version is outside the supported generated-app toolchain train."`; `operatorAction`: `"Compare the reported actual Node.js version with the supported Node.js 22 train and verify the active version-manager configuration."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: ``"Install and activate Node.js 22 with `nvm install 22 && nvm use 22`, then rerun the command."``; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/create-croco-app/src/libs/problems/UnsupportedNodeVersionProblem.ts"`; `kind`: `"problem-class"`; `line`: `4`; \}\]; `status`: `422`; `title`: `"Validation Error"`; \}, \{ `category`: `"ValidationError"`; `code`: `"create-croco-app/web-meta-vite-fullstack-missing-hydration-root"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#create-croco-app-web-meta-vite-fullstack-missing-hydration-root"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request or generated contract failed schema or semantic validation."`; `operatorAction`: `"Inspect schema diagnostics, generated contracts, and validation metadata."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Fix the invalid fields and retry with schema-conformant input."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/create-croco-app/templates/addons/web-meta-vite-fullstack/ssr-worker/src/client.tsx"`; `kind`: `"problem-constructor"`; `line`: `11`; \}\]; `status`: `422`; `title`: `"Validation Error"`; \}, \{ `category`: `"ValidationError"`; `code`: `"create-croco-app/web-meta-vite-missing-hydration-root"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#create-croco-app-web-meta-vite-missing-hydration-root"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request or generated contract failed schema or semantic validation."`; `operatorAction`: `"Inspect schema diagnostics, generated contracts, and validation metadata."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Fix the invalid fields and retry with schema-conformant input."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/create-croco-app/templates/addons/web-meta-vite/src/client.tsx"`; `kind`: `"problem-constructor"`; `line`: `11`; \}\]; `status`: `422`; `title`: `"Validation Error"`; \}, \{ `category`: `"Conflict"`; `code`: `"credits-core/account-mismatch"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#credits-core-account-mismatch"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request conflicts with current state or an idempotency constraint."`; `operatorAction`: `"Inspect concurrent writes, idempotency keys, and uniqueness constraints."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Refresh state, resolve the conflict, and retry with the updated intent."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/credits-core/src/libs/problems.ts"`; `kind`: `"problem-class"`; `line`: `81`; \}\]; `status`: `409`; `title`: `"Conflict"`; \}, \{ `category`: `"NotFound"`; `code`: `"credits-core/account-not-found"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#credits-core-account-not-found"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The requested resource or route-visible record does not exist."`; `operatorAction`: `"Confirm tenant scoping, data retention, and backing-store lookup behavior."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Verify the identifier and refresh the resource list before retrying."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/credits-core/src/libs/problems.ts"`; `kind`: `"problem-class"`; `line`: `15`; \}\]; `status`: `404`; `title`: `"Not Found"`; \}, \{ `category`: `"Conflict"`; `code`: `"credits-core/duplicate-conflict"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#credits-core-duplicate-conflict"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request conflicts with current state or an idempotency constraint."`; `operatorAction`: `"Inspect concurrent writes, idempotency keys, and uniqueness constraints."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Refresh state, resolve the conflict, and retry with the updated intent."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/credits-core/src/libs/problems.ts"`; `kind`: `"problem-class"`; `line`: `67`; \}\]; `status`: `409`; `title`: `"Conflict"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"credits-core/event-publication-failed"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#credits-core-event-publication-failed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/credits-core/src/libs/problems.ts"`; `kind`: `"problem-class"`; `line`: `143`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"BusinessRuleViolation"`; `code`: `"credits-core/expired-grant"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#credits-core-expired-grant"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request is syntactically valid but violates a domain rule."`; `operatorAction`: `"Review domain policy, entitlement, quota, and lifecycle rule evidence."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Change the workflow state or request values so the business rule is satisfied."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/credits-core/src/libs/problems.ts"`; `kind`: `"problem-class"`; `line`: `39`; \}\]; `status`: `422`; `title`: `"Business Rule Violation"`; \}, \{ `category`: `"BusinessRuleViolation"`; `code`: `"credits-core/insufficient-credits"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#credits-core-insufficient-credits"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request is syntactically valid but violates a domain rule."`; `operatorAction`: `"Review domain policy, entitlement, quota, and lifecycle rule evidence."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Change the workflow state or request values so the business rule is satisfied."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/credits-core/src/libs/problems.ts"`; `kind`: `"problem-class"`; `line`: `25`; \}\]; `status`: `422`; `title`: `"Business Rule Violation"`; \}, \{ `category`: `"ValidationError"`; `code`: `"credits-core/invalid-amount"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#credits-core-invalid-amount"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request or generated contract failed schema or semantic validation."`; `operatorAction`: `"Inspect schema diagnostics, generated contracts, and validation metadata."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Fix the invalid fields and retry with schema-conformant input."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/credits-core/src/libs/problems.ts"`; `kind`: `"problem-class"`; `line`: `5`; \}\]; `status`: `422`; `title`: `"Validation Error"`; \}, \{ `category`: `"ValidationError"`; `code`: `"credits-core/invalid-command"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#credits-core-invalid-command"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request or generated contract failed schema or semantic validation."`; `operatorAction`: `"Inspect schema diagnostics, generated contracts, and validation metadata."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Fix the invalid fields and retry with schema-conformant input."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/credits-core/src/libs/problems.ts"`; `kind`: `"problem-class"`; `line`: `109`; \}\]; `status`: `422`; `title`: `"Validation Error"`; \}, \{ `category`: `"BusinessRuleViolation"`; `code`: `"credits-core/refund-mismatch"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#credits-core-refund-mismatch"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request is syntactically valid but violates a domain rule."`; `operatorAction`: `"Review domain policy, entitlement, quota, and lifecycle rule evidence."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Change the workflow state or request values so the business rule is satisfied."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/credits-core/src/libs/problems.ts"`; `kind`: `"problem-class"`; `line`: `129`; \}\]; `status`: `422`; `title`: `"Business Rule Violation"`; \}, \{ `category`: `"BusinessRuleViolation"`; `code`: `"credits-core/reservation-mismatch"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#credits-core-reservation-mismatch"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request is syntactically valid but violates a domain rule."`; `operatorAction`: `"Review domain policy, entitlement, quota, and lifecycle rule evidence."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Change the workflow state or request values so the business rule is satisfied."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/credits-core/src/libs/problems.ts"`; `kind`: `"problem-class"`; `line`: `53`; \}\]; `status`: `422`; `title`: `"Business Rule Violation"`; \}, \{ `category`: `"Conflict"`; `code`: `"credits-core/stale-ledger-position"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#credits-core-stale-ledger-position"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request conflicts with current state or an idempotency constraint."`; `operatorAction`: `"Inspect concurrent writes, idempotency keys, and uniqueness constraints."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Refresh state, resolve the conflict, and retry with the updated intent."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/credits-core/src/libs/problems.ts"`; `kind`: `"problem-class"`; `line`: `95`; \}\]; `status`: `409`; `title`: `"Conflict"`; \}, \{ `category`: `"NotFound"`; `code`: `"credits-core/transaction-not-found"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#credits-core-transaction-not-found"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The requested resource or route-visible record does not exist."`; `operatorAction`: `"Confirm tenant scoping, data retention, and backing-store lookup behavior."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Verify the identifier and refresh the resource list before retrying."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/credits-core/src/libs/problems.ts"`; `kind`: `"problem-class"`; `line`: `119`; \}\]; `status`: `404`; `title`: `"Not Found"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"credits-drizzle/persistence-failure"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#credits-drizzle-persistence-failure"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/credits-drizzle/src/libs/problems.ts"`; `kind`: `"problem-class"`; `line`: `5`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"BadRequest"`; `code`: `"CROCO_CLI_JOBS_001"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#croco-cli-jobs-001"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The caller sent malformed input or unsupported request options."`; `operatorAction`: `"Inspect validation details and request logs; do not retry unchanged input."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Correct the request input and retry after validation passes."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/cli/src/commands/jobs.ts"`; `kind`: `"problem-constructor"`; `line`: `88`; \}\]; `status`: `400`; `title`: `"Bad Request"`; \}, \{ `category`: `"BadRequest"`; `code`: `"CROCO_CLI_JOBS_002"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#croco-cli-jobs-002"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The caller sent malformed input or unsupported request options."`; `operatorAction`: `"Inspect validation details and request logs; do not retry unchanged input."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Correct the request input and retry after validation passes."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/cli/src/commands/jobs.ts"`; `kind`: `"problem-constructor"`; `line`: `99`; \}\]; `status`: `400`; `title`: `"Bad Request"`; \}, \{ `category`: `"BadRequest"`; `code`: `"CROCO_CLI_JOBS_003"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#croco-cli-jobs-003"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The caller sent malformed input or unsupported request options."`; `operatorAction`: `"Inspect validation details and request logs; do not retry unchanged input."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Correct the request input and retry after validation passes."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/cli/src/commands/jobs.ts"`; `kind`: `"problem-constructor"`; `line`: `110`; \}\]; `status`: `400`; `title`: `"Bad Request"`; \}, \{ `category`: `"Conflict"`; `code`: `"CROCO_CLI_JOBS_004"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#croco-cli-jobs-004"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request conflicts with current state or an idempotency constraint."`; `operatorAction`: `"Inspect concurrent writes, idempotency keys, and uniqueness constraints."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Refresh state, resolve the conflict, and retry with the updated intent."`; \}; `sources`: readonly \[\{ `column`: `49`; `file`: `"packages/cli/src/commands/jobs.ts"`; `kind`: `"problem-metadata"`; `line`: `137`; \}\]; `status`: `409`; `title`: `"Conflict"`; \}, \{ `category`: `"NotFound"`; `code`: `"CROCO_CLI_JOBS_005"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#croco-cli-jobs-005"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The requested resource or route-visible record does not exist."`; `operatorAction`: `"Confirm tenant scoping, data retention, and backing-store lookup behavior."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Verify the identifier and refresh the resource list before retrying."`; \}; `sources`: readonly \[\{ `column`: `63`; `file`: `"packages/cli/src/commands/jobs.ts"`; `kind`: `"problem-metadata"`; `line`: `132`; \}\]; `status`: `404`; `title`: `"Not Found"`; \}, \{ `category`: `"BadRequest"`; `code`: `"CROCO_CLI_OPS_001"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#croco-cli-ops-001"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The caller sent malformed input or unsupported request options."`; `operatorAction`: `"Inspect validation details and request logs; do not retry unchanged input."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Correct the request input and retry after validation passes."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/cli/src/libs/ops.ts"`; `kind`: `"problem-constructor"`; `line`: `66`; \}\]; `status`: `400`; `title`: `"Bad Request"`; \}, \{ `category`: `"BadRequest"`; `code`: `"CROCO_CLI_OPS_002"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#croco-cli-ops-002"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The caller sent malformed input or unsupported request options."`; `operatorAction`: `"Inspect validation details and request logs; do not retry unchanged input."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Correct the request input and retry after validation passes."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/cli/src/libs/ops.ts"`; `kind`: `"problem-constructor"`; `line`: `55`; \}\]; `status`: `400`; `title`: `"Bad Request"`; \}, \{ `category`: `"BadRequest"`; `code`: `"CROCO_CLI_USAGE_DASHBOARD_005"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#croco-cli-usage-dashboard-005"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The caller sent malformed input or unsupported request options."`; `operatorAction`: `"Inspect validation details and request logs; do not retry unchanged input."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Correct the request input and retry after validation passes."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/cli/src/commands/generateUsageDashboard.ts"`; `kind`: `"problem-constructor"`; `line`: `24`; \}\]; `status`: `400`; `title`: `"Bad Request"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"CROCO_HTTP_MIDDLEWARE_001"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#croco-http-middleware-001"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"HTTP middleware returned without a Response, without shortCircuit(reason), and without calling next() exactly once."`; `operatorAction`: `"Update the named @croco/transports-http middleware to return next(), await next() once, return a Response, or return shortCircuit(reason) for intentional termination."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry only after the service owner ships a middleware contract fix."`; \}; `sources`: readonly \[\{ `column`: `12`; `file`: `"packages/transports-http/src/libs/CrocoRouteRegistrar.ts"`; `kind`: `"problem-factory"`; `line`: `367`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"CROCO_HTTP_MIDDLEWARE_002"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#croco-http-middleware-002"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"HTTP middleware attempted to resume the downstream pipeline more than once."`; `operatorAction`: `"Store the Response from a single next() call and reuse or transform it instead of calling next() again."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry only after the service owner ships a middleware contract fix."`; \}; `sources`: readonly \[\{ `column`: `15`; `file`: `"packages/transports-http/src/libs/CrocoRouteRegistrar.ts"`; `kind`: `"problem-factory"`; `line`: `272`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"CROCO_HTTP_SECURITY_001"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#croco-http-security-001"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"HTTP bootstrap validation found a generated or application app without the required security middleware set."`; `operatorAction`: `"Add the missing @croco/transports-http middleware or keep securityValidation disabled only in an explicit local migration/testing fixture."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Use an app build that registers security headers, CORS, body limit, and rate-limit middleware before first run."`; \}; `sources`: readonly \[\{ `column`: `11`; `file`: `"packages/transports-http/src/libs/CrocoApp.ts"`; `kind`: `"problem-factory"`; `line`: `278`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"BadRequest"`; `code`: `"CROCO_HTTP_SECURITY_002"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#croco-http-security-002"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The caller sent malformed input or unsupported request options."`; `operatorAction`: `"Inspect validation details and request logs; do not retry unchanged input."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Correct the request input and retry after validation passes."`; \}; `sources`: readonly \[\{ `column`: `11`; `file`: `"packages/transports-http/src/libs/middleware/SecurityMiddlewareMarker.ts"`; `kind`: `"problem-factory"`; `line`: `154`; \}\]; `status`: `400`; `title`: `"Bad Request"`; \}, \{ `category`: `"ValidationError"`; `code`: `"CROCO_TEST_EVIDENCE_CONTRACT_INVALID"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#croco-test-evidence-contract-invalid"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request or generated contract failed schema or semantic validation."`; `operatorAction`: `"Inspect schema diagnostics, generated contracts, and validation metadata."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Fix the invalid fields and retry with schema-conformant input."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/testing/src/libs/test-evidence.mts"`; `kind`: `"problem-constructor"`; `line`: `159`; \}\]; `status`: `422`; `title`: `"Validation Error"`; \}, \{ `category`: `"ValidationError"`; `code`: `"CROCO_TEST_EVIDENCE_FIDELITY_UNSATISFIED"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#croco-test-evidence-fidelity-unsatisfied"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request or generated contract failed schema or semantic validation."`; `operatorAction`: `"Inspect schema diagnostics, generated contracts, and validation metadata."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Fix the invalid fields and retry with schema-conformant input."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/testing/src/libs/test-evidence.mts"`; `kind`: `"problem-constructor"`; `line`: `173`; \}\]; `status`: `422`; `title`: `"Validation Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"dataloader-core/batch-result-length-mismatch"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#dataloader-core-batch-result-length-mismatch"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/dataloader-core/src/libs/problems/BatchLoaderProblems.ts"`; `kind`: `"problem-class"`; `line`: `4`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"diagnostics-core/duplicate-provider"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#diagnostics-core-duplicate-provider"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/diagnostics-core/src/libs/problems/DiagnosticsProblems.ts"`; `kind`: `"problem-class"`; `line`: `7`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"Conflict"`; `code`: `"DUPLICATE_INVITATION"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#duplicate-invitation"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request conflicts with current state or an idempotency constraint."`; `operatorAction`: `"Inspect concurrent writes, idempotency keys, and uniqueness constraints."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Refresh state, resolve the conflict, and retry with the updated intent."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/invitation-core/src/libs/problems/RateLimitProblems.ts"`; `kind`: `"problem-class"`; `line`: `13`; \}\]; `status`: `409`; `title`: `"Conflict"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"DUPLICATE_RECOVER_HANDLER"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#duplicate-recover-handler"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/retry-core/src/libs/errors/DuplicateRecoverHandlerProblem.ts"`; `kind`: `"problem-class"`; `line`: `7`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"BadRequest"`; `code`: `"DURATION_PARSE_ERROR"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#duration-parse-error"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The caller sent malformed input or unsupported request options."`; `operatorAction`: `"Inspect validation details and request logs; do not retry unchanged input."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Correct the request input and retry after validation passes."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/framework-context/src/libs/problems/ContextProblems.ts"`; `kind`: `"problem-class"`; `line`: `15`; \}\]; `status`: `400`; `title`: `"Bad Request"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"EMBEDDING_ERROR"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#embedding-error"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/llm-core/src/libs/problems/LlmServiceProblem.ts"`; `kind`: `"problem-constructor"`; `line`: `43`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"Forbidden"`; `code`: `"ENTITLEMENT_DENIED"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#entitlement-denied"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The authenticated caller is not allowed to perform the requested action."`; `operatorAction`: `"Review policy, role, tenant, entitlement, and impersonation context."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Request the required permission or choose an allowed action."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/entitlements-core/src/libs/problems/EntitlementProblems.ts"`; `kind`: `"problem-class"`; `line`: `20`; \}\]; `status`: `403`; `title`: `"Forbidden"`; \}, \{ `category`: `"Forbidden"`; `code`: `"ENTITLEMENT_INACTIVE_SUBSCRIPTION"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#entitlement-inactive-subscription"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The authenticated caller is not allowed to perform the requested action."`; `operatorAction`: `"Review policy, role, tenant, entitlement, and impersonation context."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Request the required permission or choose an allowed action."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/entitlements-core/src/libs/problems/EntitlementProblems.ts"`; `kind`: `"problem-class"`; `line`: `46`; \}\]; `status`: `403`; `title`: `"Forbidden"`; \}, \{ `category`: `"Forbidden"`; `code`: `"ENTITLEMENT_MISSING_PLAN"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#entitlement-missing-plan"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The authenticated caller is not allowed to perform the requested action."`; `operatorAction`: `"Review policy, role, tenant, entitlement, and impersonation context."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Request the required permission or choose an allowed action."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/entitlements-core/src/libs/problems/EntitlementProblems.ts"`; `kind`: `"problem-class"`; `line`: `32`; \}\]; `status`: `403`; `title`: `"Forbidden"`; \}, \{ `category`: `"NotFound"`; `code`: `"ENTITLEMENT_NOT_FOUND"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#entitlement-not-found"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The requested resource or route-visible record does not exist."`; `operatorAction`: `"Confirm tenant scoping, data retention, and backing-store lookup behavior."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Verify the identifier and refresh the resource list before retrying."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/entitlements-core/src/libs/problems/EntitlementProblems.ts"`; `kind`: `"problem-class"`; `line`: `86`; \}\]; `status`: `404`; `title`: `"Not Found"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"ENTITLEMENT_PROVIDER_UNAVAILABLE"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#entitlement-provider-unavailable"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/entitlements-core/src/libs/problems/EntitlementProblems.ts"`; `kind`: `"problem-class"`; `line`: `74`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"TooManyRequests"`; `code`: `"ENTITLEMENT_QUOTA_EXCEEDED"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#entitlement-quota-exceeded"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The caller exceeded a rate, quota, or concurrency limit."`; `operatorAction`: `"Check limiter state, quota configuration, and abuse signals."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Wait for the retry window or reduce request volume."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/entitlements-core/src/libs/problems/EntitlementProblems.ts"`; `kind`: `"problem-class"`; `line`: `60`; \}\]; `status`: `429`; `title`: `"Too Many Requests"`; \}, \{ `category`: `"ValidationError"`; `code`: `"ENTITLEMENT_REQUIREMENT_INVALID"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#entitlement-requirement-invalid"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request or generated contract failed schema or semantic validation."`; `operatorAction`: `"Inspect schema diagnostics, generated contracts, and validation metadata."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Fix the invalid fields and retry with schema-conformant input."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/entitlements-core/src/libs/problems/EntitlementProblems.ts"`; `kind`: `"problem-class"`; `line`: `11`; \}\]; `status`: `422`; `title`: `"Validation Error"`; \}, \{ `category`: `"ValidationError"`; `code`: `"entitlements-core/definition-invalid"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#entitlements-core-definition-invalid"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request or generated contract failed schema or semantic validation."`; `operatorAction`: `"Inspect schema diagnostics, generated contracts, and validation metadata."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Fix the invalid fields and retry with schema-conformant input."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/entitlements-core/src/libs/problems/EntitlementProblems.ts"`; `kind`: `"problem-class"`; `line`: `95`; \}\]; `status`: `422`; `title`: `"Validation Error"`; \}, \{ `category`: `"Conflict"`; `code`: `"entitlements-core/plan-version-already-registered"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#entitlements-core-plan-version-already-registered"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request conflicts with current state or an idempotency constraint."`; `operatorAction`: `"Inspect concurrent writes, idempotency keys, and uniqueness constraints."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Refresh state, resolve the conflict, and retry with the updated intent."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/entitlements-core/src/libs/problems/EntitlementProblems.ts"`; `kind`: `"problem-class"`; `line`: `113`; \}\]; `status`: `409`; `title`: `"Conflict"`; \}, \{ `category`: `"Conflict"`; `code`: `"entitlements-core/plan-version-mismatch"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#entitlements-core-plan-version-mismatch"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request conflicts with current state or an idempotency constraint."`; `operatorAction`: `"Inspect concurrent writes, idempotency keys, and uniqueness constraints."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Refresh state, resolve the conflict, and retry with the updated intent."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/entitlements-core/src/libs/problems/EntitlementProblems.ts"`; `kind`: `"problem-class"`; `line`: `122`; \}\]; `status`: `409`; `title`: `"Conflict"`; \}, \{ `category`: `"NotFound"`; `code`: `"entitlements-core/plan-version-not-found"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#entitlements-core-plan-version-not-found"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The requested resource or route-visible record does not exist."`; `operatorAction`: `"Confirm tenant scoping, data retention, and backing-store lookup behavior."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Verify the identifier and refresh the resource list before retrying."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/entitlements-core/src/libs/problems/EntitlementProblems.ts"`; `kind`: `"problem-class"`; `line`: `104`; \}\]; `status`: `404`; `title`: `"Not Found"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"events-core/after-commit-outcome-required"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#events-core-after-commit-outcome-required"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/events-core/src/libs/problems/EventsProblems.ts"`; `kind`: `"problem-class"`; `line`: `107`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"events-core/after-commit-requires-active-transaction"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#events-core-after-commit-requires-active-transaction"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/events-core/src/libs/problems/EventsProblems.ts"`; `kind`: `"problem-class"`; `line`: `96`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"events-core/deserialization-error"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#events-core-deserialization-error"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/events-core/src/libs/problems/EventsProblems.ts"`; `kind`: `"problem-class"`; `line`: `40`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"events-core/duplicate-event-field"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#events-core-duplicate-event-field"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/events-core/src/libs/problems/EventsProblems.ts"`; `kind`: `"problem-class"`; `line`: `51`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"events-core/duplicate-event-name"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#events-core-duplicate-event-name"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/events-core/src/libs/problems/EventsProblems.ts"`; `kind`: `"problem-class"`; `line`: `66`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"events-core/event-bus-not-set"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#events-core-event-bus-not-set"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/events-core/src/libs/problems/EventsProblems.ts"`; `kind`: `"problem-class"`; `line`: `7`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"events-core/event-definition-error"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#events-core-event-definition-error"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/events-core/src/libs/problems/EventsProblems.ts"`; `kind`: `"problem-class"`; `line`: `18`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"events-core/transaction-context-unavailable"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#events-core-transaction-context-unavailable"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/events-core/src/libs/problems/EventsProblems.ts"`; `kind`: `"problem-class"`; `line`: `81`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"events-core/unknown-event-type"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#events-core-unknown-event-type"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/events-core/src/libs/problems/EventsProblems.ts"`; `kind`: `"problem-class"`; `line`: `29`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"TooManyRequests"`; `code`: `"events-inmemory/backpressure-exceeded"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#events-inmemory-backpressure-exceeded"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The caller exceeded a rate, quota, or concurrency limit."`; `operatorAction`: `"Check limiter state, quota configuration, and abuse signals."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Wait for the retry window or reduce request volume."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/events-inmemory/src/libs/problems/EventsInmemoryProblems.ts"`; `kind`: `"problem-class"`; `line`: `7`; \}\]; `status`: `429`; `title`: `"Too Many Requests"`; \}, \{ `category`: `"TooManyRequests"`; `code`: `"events-inmemory/backpressure-timeout"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#events-inmemory-backpressure-timeout"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The caller exceeded a rate, quota, or concurrency limit."`; `operatorAction`: `"Check limiter state, quota configuration, and abuse signals."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Wait for the retry window or reduce request volume."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/events-inmemory/src/libs/problems/EventsInmemoryProblems.ts"`; `kind`: `"problem-class"`; `line`: `23`; \}\]; `status`: `429`; `title`: `"Too Many Requests"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"events-inmemory/invalid-configuration"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#events-inmemory-invalid-configuration"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/events-inmemory/src/libs/InmemoryEventBus.ts"`; `kind`: `"problem-class"`; `line`: `72`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"events-inmemory/publish-dropped"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#events-inmemory-publish-dropped"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/events-inmemory/src/libs/InmemoryEventBus.ts"`; `kind`: `"problem-class"`; `line`: `51`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"events-inmemory/publish-failed"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#events-inmemory-publish-failed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/events-inmemory/src/libs/InmemoryEventBus.ts"`; `kind`: `"problem-class"`; `line`: `34`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"events-tx/configuration-invalid"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#events-tx-configuration-invalid"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/events-tx/src/libs/problems/EventsTxProblems.ts"`; `kind`: `"problem-class"`; `line`: `36`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"Conflict"`; `code`: `"events-tx/inbox-claim-conflict"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#events-tx-inbox-claim-conflict"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"An inbox completion request no longer owns the processing attempt it started."`; `operatorAction`: `"Inspect concurrent writes, idempotency keys, and uniqueness constraints, then verify workers complete only the attempt they claimed."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Acquire a new inbox claim before retrying processing; discard the stale completion when a new claim cannot be acquired."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/events-tx/src/libs/problems/EventsTxProblems.ts"`; `kind`: `"problem-class"`; `line`: `120`; \}\]; `status`: `409`; `title`: `"Conflict"`; \}, \{ `category`: `"Conflict"`; `code`: `"events-tx/outbox-idempotency-conflict"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#events-tx-outbox-idempotency-conflict"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request conflicts with current state or an idempotency constraint."`; `operatorAction`: `"Inspect concurrent writes, idempotency keys, and uniqueness constraints."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Refresh state, resolve the conflict, and retry with the updated intent."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/events-tx/src/libs/problems/EventsTxProblems.ts"`; `kind`: `"problem-class"`; `line`: `83`; \}\]; `status`: `409`; `title`: `"Conflict"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"events-tx/outbox-publish-exhausted"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#events-tx-outbox-publish-exhausted"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/events-tx/src/libs/problems/EventsTxProblems.ts"`; `kind`: `"problem-class"`; `line`: `105`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"events-tx/outbox-transaction-required"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#events-tx-outbox-transaction-required"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/events-tx/src/libs/problems/EventsTxProblems.ts"`; `kind`: `"problem-class"`; `line`: `64`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"events-tx/storage-error"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#events-tx-storage-error"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/events-tx/src/libs/problems/EventsTxProblems.ts"`; `kind`: `"problem-class"`; `line`: `73`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"events-tx/transaction-state-error"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#events-tx-transaction-state-error"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/events-tx/src/libs/problems/EventsTxProblems.ts"`; `kind`: `"problem-class"`; `line`: `56`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"execution/checkpoint-store-conformance"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#execution-checkpoint-store-conformance"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `12`; `file`: `"packages/execution-core/src/libs/ExecutionProblem.ts"`; `kind`: `"problem-constructor"`; `line`: `138`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"Conflict"`; `code`: `"execution/conflict"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#execution-conflict"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request conflicts with current state or an idempotency constraint."`; `operatorAction`: `"Inspect concurrent writes, idempotency keys, and uniqueness constraints."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Refresh state, resolve the conflict, and retry with the updated intent."`; \}; `sources`: readonly \[\{ `column`: `12`; `file`: `"packages/execution-core/src/libs/ExecutionProblem.ts"`; `kind`: `"problem-constructor"`; `line`: `90`; \}\]; `status`: `409`; `title`: `"Conflict"`; \}, \{ `category`: `"Conflict"`; `code`: `"execution/continuation-conflict"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#execution-continuation-conflict"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request conflicts with current state or an idempotency constraint."`; `operatorAction`: `"Inspect concurrent writes, idempotency keys, and uniqueness constraints."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Refresh state, resolve the conflict, and retry with the updated intent."`; \}; `sources`: readonly \[\{ `column`: `12`; `file`: `"packages/execution-core/src/libs/ExecutionProblem.ts"`; `kind`: `"problem-constructor"`; `line`: `129`; \}\]; `status`: `409`; `title`: `"Conflict"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"execution/continuation-unsupported"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#execution-continuation-unsupported"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `12`; `file`: `"packages/execution-core/src/libs/ExecutionProblem.ts"`; `kind`: `"problem-constructor"`; `line`: `118`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"Conflict"`; `code`: `"execution/idempotency-conflict"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#execution-idempotency-conflict"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request conflicts with current state or an idempotency constraint."`; `operatorAction`: `"Inspect concurrent writes, idempotency keys, and uniqueness constraints."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Refresh state, resolve the conflict, and retry with the updated intent."`; \}; `sources`: readonly \[\{ `column`: `12`; `file`: `"packages/execution-core/src/libs/ExecutionProblem.ts"`; `kind`: `"problem-constructor"`; `line`: `94`; \}\]; `status`: `409`; `title`: `"Conflict"`; \}, \{ `category`: `"ValidationError"`; `code`: `"execution/invalid-continuation-lease-duration"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#execution-invalid-continuation-lease-duration"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request or generated contract failed schema or semantic validation."`; `operatorAction`: `"Inspect schema diagnostics, generated contracts, and validation metadata."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Fix the invalid fields and retry with schema-conformant input."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/execution-core/src/libs/ExecutionProblem.ts"`; `kind`: `"problem-class"`; `line`: `29`; \}\]; `status`: `422`; `title`: `"Validation Error"`; \}, \{ `category`: `"Conflict"`; `code`: `"execution/invalid-state-transition"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#execution-invalid-state-transition"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request conflicts with current state or an idempotency constraint."`; `operatorAction`: `"Inspect concurrent writes, idempotency keys, and uniqueness constraints."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Refresh state, resolve the conflict, and retry with the updated intent."`; \}; `sources`: readonly \[\{ `column`: `12`; `file`: `"packages/execution-core/src/libs/ExecutionProblem.ts"`; `kind`: `"problem-constructor"`; `line`: `110`; \}\]; `status`: `409`; `title`: `"Conflict"`; \}, \{ `category`: `"Conflict"`; `code`: `"execution/max-retries-exceeded"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#execution-max-retries-exceeded"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request conflicts with current state or an idempotency constraint."`; `operatorAction`: `"Inspect concurrent writes, idempotency keys, and uniqueness constraints."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Refresh state, resolve the conflict, and retry with the updated intent."`; \}; `sources`: readonly \[\{ `column`: `12`; `file`: `"packages/execution-core/src/libs/ExecutionProblem.ts"`; `kind`: `"problem-constructor"`; `line`: `102`; \}\]; `status`: `409`; `title`: `"Conflict"`; \}, \{ `category`: `"NotFound"`; `code`: `"execution/not-found"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#execution-not-found"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The requested resource or route-visible record does not exist."`; `operatorAction`: `"Confirm tenant scoping, data retention, and backing-store lookup behavior."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Verify the identifier and refresh the resource list before retrying."`; \}; `sources`: readonly \[\{ `column`: `12`; `file`: `"packages/execution-core/src/libs/ExecutionProblem.ts"`; `kind`: `"problem-constructor"`; `line`: `86`; \}\]; `status`: `404`; `title`: `"Not Found"`; \}, \{ `category`: `"Forbidden"`; `code`: `"FORBIDDEN"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#forbidden"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The authenticated caller is not allowed to perform the requested action."`; `operatorAction`: `"Review policy, role, tenant, entitlement, and impersonation context."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Request the required permission or choose an allowed action."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/auth-core/src/libs/problems/AuthProblems.ts"`; `kind`: `"problem-class"`; `line`: `13`; \}\]; `status`: `403`; `title`: `"Forbidden"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"framework-config/config-schema-not-found"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#framework-config-config-schema-not-found"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/framework-config/src/libs/problems/ConfigProblems.ts"`; `kind`: `"problem-class"`; `line`: `4`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"ValidationError"`; `code`: `"framework-config/config-validation-failed"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#framework-config-config-validation-failed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request or generated contract failed schema or semantic validation."`; `operatorAction`: `"Inspect schema diagnostics, generated contracts, and validation metadata."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Fix the invalid fields and retry with schema-conformant input."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/framework-config/src/libs/problems/ConfigProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `15`; \}\]; `status`: `422`; `title`: `"Validation Error"`; \}, \{ `category`: `"ValidationError"`; `code`: `"framework-config/invalid-boolean-env"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#framework-config-invalid-boolean-env"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request or generated contract failed schema or semantic validation."`; `operatorAction`: `"Inspect schema diagnostics, generated contracts, and validation metadata."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Fix the invalid fields and retry with schema-conformant input."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/framework-config/src/libs/problems/ConfigProblems.ts"`; `kind`: `"problem-class"`; `line`: `24`; \}\]; `status`: `422`; `title`: `"Validation Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"framework-context/circular-dependency"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#framework-context-circular-dependency"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/framework-context/src/libs/problems/CircularDependencyProblem.ts"`; `kind`: `"problem-class"`; `line`: `7`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"framework-context/container-scope-disposed"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#framework-context-container-scope-disposed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `10`; `file`: `"packages/framework-context/src/libs/Container.ts"`; `kind`: `"problem-factory"`; `line`: `65`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"framework-context/context-middleware-execution-error"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#framework-context-context-middleware-execution-error"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/framework-context/src/libs/problems/ContextProblems.ts"`; `kind`: `"problem-class"`; `line`: `7`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"framework-context/di-resolution-failed"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#framework-context-di-resolution-failed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/framework-context/src/libs/problems/ContainerResolutionProblem.ts"`; `kind`: `"problem-class"`; `line`: `10`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"framework-context/di-scope-mismatch"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#framework-context-di-scope-mismatch"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/framework-context/src/libs/problems/ContainerResolutionProblem.ts"`; `kind`: `"problem-class"`; `line`: `31`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"ValidationError"`; `code`: `"framework-context/on-shutdown-decorator-invalid"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#framework-context-on-shutdown-decorator-invalid"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request or generated contract failed schema or semantic validation."`; `operatorAction`: `"Inspect schema diagnostics, generated contracts, and validation metadata."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Fix the invalid fields and retry with schema-conformant input."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/framework-context/src/libs/problems/ShutdownProblems.ts"`; `kind`: `"problem-class"`; `line`: `9`; \}\]; `status`: `422`; `title`: `"Validation Error"`; \}, \{ `category`: `"Conflict"`; `code`: `"framework-context/pipeline-graph-invalid"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#framework-context-pipeline-graph-invalid"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request conflicts with current state or an idempotency constraint."`; `operatorAction`: `"Inspect concurrent writes, idempotency keys, and uniqueness constraints."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Refresh state, resolve the conflict, and retry with the updated intent."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/framework-context/src/libs/problems/PipelineGraphProblems.ts"`; `kind`: `"problem-class"`; `line`: `7`; \}\]; `status`: `409`; `title`: `"Conflict"`; \}, \{ `category`: `"Conflict"`; `code`: `"framework-context/policy-capability-unavailable"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#framework-context-policy-capability-unavailable"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request conflicts with current state or an idempotency constraint."`; `operatorAction`: `"Inspect concurrent writes, idempotency keys, and uniqueness constraints."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Refresh state, resolve the conflict, and retry with the updated intent."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/framework-context/src/libs/problems/RuntimePolicyProblems.ts"`; `kind`: `"problem-class"`; `line`: `33`; \}\]; `status`: `409`; `title`: `"Conflict"`; \}, \{ `category`: `"Conflict"`; `code`: `"framework-context/policy-conflict"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#framework-context-policy-conflict"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request conflicts with current state or an idempotency constraint."`; `operatorAction`: `"Inspect concurrent writes, idempotency keys, and uniqueness constraints."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Refresh state, resolve the conflict, and retry with the updated intent."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/framework-context/src/libs/problems/RuntimePolicyProblems.ts"`; `kind`: `"problem-class"`; `line`: `9`; \}\]; `status`: `409`; `title`: `"Conflict"`; \}, \{ `category`: `"ValidationError"`; `code`: `"framework-context/policy-definition-invalid"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#framework-context-policy-definition-invalid"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request or generated contract failed schema or semantic validation."`; `operatorAction`: `"Inspect schema diagnostics, generated contracts, and validation metadata."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Fix the invalid fields and retry with schema-conformant input."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/framework-context/src/libs/problems/RuntimePolicyProblems.ts"`; `kind`: `"problem-class"`; `line`: `21`; \}\]; `status`: `422`; `title`: `"Validation Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"framework-context/request-scope-outside-context"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#framework-context-request-scope-outside-context"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `13`; `file`: `"packages/framework-context/src/libs/Container.ts"`; `kind`: `"problem-factory"`; `line`: `1705`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"Conflict"`; `code`: `"framework-context/shutdown-configuration-conflict"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#framework-context-shutdown-configuration-conflict"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request conflicts with current state or an idempotency constraint."`; `operatorAction`: `"Inspect concurrent writes, idempotency keys, and uniqueness constraints."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Refresh state, resolve the conflict, and retry with the updated intent."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/framework-context/src/libs/problems/ShutdownProblems.ts"`; `kind`: `"problem-class"`; `line`: `97`; \}\]; `status`: `409`; `title`: `"Conflict"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"framework-context/shutdown-hook-execution-failed"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#framework-context-shutdown-hook-execution-failed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/framework-context/src/libs/problems/ShutdownProblems.ts"`; `kind`: `"problem-class"`; `line`: `112`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"framework-context/shutdown-timeout"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#framework-context-shutdown-timeout"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/framework-context/src/libs/problems/ShutdownProblems.ts"`; `kind`: `"problem-class"`; `line`: `73`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"framework-module/circular-dependency"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#framework-module-circular-dependency"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/framework-module/src/problems.ts"`; `kind`: `"problem-constructor"`; `line`: `26`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"ValidationError"`; `code`: `"framework-module/invalid-module-definition"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#framework-module-invalid-module-definition"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request or generated contract failed schema or semantic validation."`; `operatorAction`: `"Inspect schema diagnostics, generated contracts, and validation metadata."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Fix the invalid fields and retry with schema-conformant input."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/framework-module/src/problems.ts"`; `kind`: `"problem-constructor"`; `line`: `16`; \}\]; `status`: `422`; `title`: `"Validation Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"framework-module/lifecycle-failed"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#framework-module-lifecycle-failed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/framework-module/src/problems.ts"`; `kind`: `"problem-constructor"`; `line`: `42`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"framework-module/provider-not-visible"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#framework-module-provider-not-visible"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/framework-module/src/problems.ts"`; `kind`: `"problem-constructor"`; `line`: `70`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"Conflict"`; `code`: `"framework-module/provider-ownership-conflict"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#framework-module-provider-ownership-conflict"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request conflicts with current state or an idempotency constraint."`; `operatorAction`: `"Inspect concurrent writes, idempotency keys, and uniqueness constraints."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Refresh state, resolve the conflict, and retry with the updated intent."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/framework-module/src/problems.ts"`; `kind`: `"problem-constructor"`; `line`: `92`; \}\]; `status`: `409`; `title`: `"Conflict"`; \}, \{ `category`: `"Conflict"`; `code`: `"framework-module/provider-write-not-owned"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#framework-module-provider-write-not-owned"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request conflicts with current state or an idempotency constraint."`; `operatorAction`: `"Inspect concurrent writes, idempotency keys, and uniqueness constraints."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Refresh state, resolve the conflict, and retry with the updated intent."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/framework-module/src/problems.ts"`; `kind`: `"problem-constructor"`; `line`: `108`; \}\]; `status`: `409`; `title`: `"Conflict"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"frontend-problems/fetch-unavailable"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#frontend-problems-fetch-unavailable"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/frontend-problems/src/index.ts"`; `kind`: `"problem-class"`; `line`: `204`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"ValidationError"`; `code`: `"frontend-vite/missing-cloudflare-vite-plugin"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#frontend-vite-missing-cloudflare-vite-plugin"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request or generated contract failed schema or semantic validation."`; `operatorAction`: `"Inspect schema diagnostics, generated contracts, and validation metadata."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Fix the invalid fields and retry with schema-conformant input."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/frontend-vite/src/libs/problems/MissingCloudflareVitePluginProblem.ts"`; `kind`: `"problem-constructor"`; `line`: `14`; \}\]; `status`: `422`; `title`: `"Validation Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"GENERATION_ERROR"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#generation-error"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/llm-core/src/libs/problems/LlmServiceProblem.ts"`; `kind`: `"problem-constructor"`; `line`: `34`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"gid-core/id-type-only-property"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#gid-core-id-type-only-property"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/gid-core/src/libs/problems/GidProblems.ts"`; `kind`: `"problem-class"`; `line`: `17`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"ValidationError"`; `code`: `"gid-core/invalid-id-prefix"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#gid-core-invalid-id-prefix"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request or generated contract failed schema or semantic validation."`; `operatorAction`: `"Inspect schema diagnostics, generated contracts, and validation metadata."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Fix the invalid fields and retry with schema-conformant input."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/gid-core/src/libs/problems/GidProblems.ts"`; `kind`: `"problem-class"`; `line`: `4`; \}\]; `status`: `422`; `title`: `"Validation Error"`; \}, \{ `category`: `"NotImplemented"`; `code`: `"governance-core/delete-not-supported"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#governance-core-delete-not-supported"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The requested capability is not supported by this runtime or adapter."`; `operatorAction`: `"Check runtime capability declarations and provider maturity documentation."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Use a supported capability or choose an adapter/runtime that provides it."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/governance-core/src/libs/problems/DataGovernanceProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `34`; \}\]; `status`: `501`; `title`: `"Not Implemented"`; \}, \{ `category`: `"NotImplemented"`; `code`: `"governance-core/export-not-supported"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#governance-core-export-not-supported"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The requested capability is not supported by this runtime or adapter."`; `operatorAction`: `"Check runtime capability declarations and provider maturity documentation."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Use a supported capability or choose an adapter/runtime that provides it."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/governance-core/src/libs/problems/DataGovernanceProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `15`; \}\]; `status`: `501`; `title`: `"Not Implemented"`; \}, \{ `category`: `"ValidationError"`; `code`: `"governance-core/resource-validation-failed"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#governance-core-resource-validation-failed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request or generated contract failed schema or semantic validation."`; `operatorAction`: `"Inspect schema diagnostics, generated contracts, and validation metadata."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Fix the invalid fields and retry with schema-conformant input."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/governance-core/src/libs/DataGovernanceResource.ts"`; `kind`: `"problem-constructor"`; `line`: `102`; \}\]; `status`: `422`; `title`: `"Validation Error"`; \}, \{ `category`: `"BusinessRuleViolation"`; `code`: `"governance-core/retention-policy-violation"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#governance-core-retention-policy-violation"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request is syntactically valid but violates a domain rule."`; `operatorAction`: `"Review domain policy, entitlement, quota, and lifecycle rule evidence."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Change the workflow state or request values so the business rule is satisfied."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/governance-core/src/libs/problems/DataGovernanceProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `59`; \}\]; `status`: `422`; `title`: `"Business Rule Violation"`; \}, \{ `category`: `"NotFound"`; `code`: `"GRAPHQL_NOT_FOUND"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#graphql-not-found"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The requested resource or route-visible record does not exist."`; `operatorAction`: `"Confirm tenant scoping, data retention, and backing-store lookup behavior."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Verify the identifier and refresh the resource list before retrying."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/protocols-graphql/src/libs/errors/GraphQLProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `23`; \}\]; `status`: `404`; `title`: `"Not Found"`; \}, \{ `category`: `"NotFound"`; `code`: `"HEALTH_SCORE_NOT_FOUND"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#health-score-not-found"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The requested resource or route-visible record does not exist."`; `operatorAction`: `"Confirm tenant scoping, data retention, and backing-store lookup behavior."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Verify the identifier and refresh the resource list before retrying."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/customer-health-core/src/libs/problems/HealthProblems.ts"`; `kind`: `"problem-class"`; `line`: `4`; \}\]; `status`: `404`; `title`: `"Not Found"`; \}, \{ `category`: `"BadRequest"`; `code`: `"idempotency-core/invalid-key"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#idempotency-core-invalid-key"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The caller sent malformed input or unsupported request options."`; `operatorAction`: `"Inspect validation details and request logs; do not retry unchanged input."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Correct the request input and retry after validation passes."`; \}; `sources`: readonly \[\{ `column`: `11`; `file`: `"packages/idempotency-core/src/libs/problems/IdempotencyProblems.ts"`; `kind`: `"problem-metadata"`; `line`: `53`; \}\]; `status`: `400`; `title`: `"Bad Request"`; \}, \{ `category`: `"BadRequest"`; `code`: `"idempotency-core/invalid-ttl"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#idempotency-core-invalid-ttl"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The caller sent malformed input or unsupported request options."`; `operatorAction`: `"Inspect validation details and request logs; do not retry unchanged input."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Correct the request input and retry after validation passes."`; \}; `sources`: readonly \[\{ `column`: `11`; `file`: `"packages/idempotency-core/src/libs/problems/IdempotencyProblems.ts"`; `kind`: `"problem-metadata"`; `line`: `72`; \}\]; `status`: `400`; `title`: `"Bad Request"`; \}, \{ `category`: `"Conflict"`; `code`: `"idempotency-core/key-conflict"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#idempotency-core-key-conflict"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request conflicts with current state or an idempotency constraint."`; `operatorAction`: `"Inspect concurrent writes, idempotency keys, and uniqueness constraints."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Refresh state, resolve the conflict, and retry with the updated intent."`; \}; `sources`: readonly \[\{ `column`: `11`; `file`: `"packages/idempotency-core/src/libs/problems/IdempotencyProblems.ts"`; `kind`: `"problem-metadata"`; `line`: `37`; \}\]; `status`: `409`; `title`: `"Conflict"`; \}, \{ `category`: `"Conflict"`; `code`: `"idempotency-core/reservation-expired"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#idempotency-core-reservation-expired"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request conflicts with current state or an idempotency constraint."`; `operatorAction`: `"Inspect concurrent writes, idempotency keys, and uniqueness constraints."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Refresh state, resolve the conflict, and retry with the updated intent."`; \}; `sources`: readonly \[\{ `column`: `11`; `file`: `"packages/idempotency-core/src/libs/problems/IdempotencyProblems.ts"`; `kind`: `"problem-metadata"`; `line`: `101`; \}\]; `status`: `409`; `title`: `"Conflict"`; \}, \{ `category`: `"Conflict"`; `code`: `"idempotency-core/reservation-not-found"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#idempotency-core-reservation-not-found"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request conflicts with current state or an idempotency constraint."`; `operatorAction`: `"Inspect concurrent writes, idempotency keys, and uniqueness constraints."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Refresh state, resolve the conflict, and retry with the updated intent."`; \}; `sources`: readonly \[\{ `column`: `11`; `file`: `"packages/idempotency-core/src/libs/problems/IdempotencyProblems.ts"`; `kind`: `"problem-metadata"`; `line`: `87`; \}\]; `status`: `409`; `title`: `"Conflict"`; \}, \{ `category`: `"Conflict"`; `code`: `"idempotency-core/reservation-state"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#idempotency-core-reservation-state"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request conflicts with current state or an idempotency constraint."`; `operatorAction`: `"Inspect concurrent writes, idempotency keys, and uniqueness constraints."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Refresh state, resolve the conflict, and retry with the updated intent."`; \}; `sources`: readonly \[\{ `column`: `11`; `file`: `"packages/idempotency-core/src/libs/problems/IdempotencyProblems.ts"`; `kind`: `"problem-metadata"`; `line`: `120`; \}\]; `status`: `409`; `title`: `"Conflict"`; \}, \{ `category`: `"Forbidden"`; `code`: `"IMPERSONATION_IDENTITY_CONFLICT"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#impersonation-identity-conflict"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The authenticated caller is not allowed to perform the requested action."`; `operatorAction`: `"Review policy, role, tenant, entitlement, and impersonation context."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Request the required permission or choose an allowed action."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/impersonation-core/src/libs/problems/ImpersonationProblems.ts"`; `kind`: `"problem-class"`; `line`: `13`; \}\]; `status`: `403`; `title`: `"Forbidden"`; \}, \{ `category`: `"BadRequest"`; `code`: `"IMPERSONATION_REASON_REQUIRED"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#impersonation-reason-required"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The caller sent malformed input or unsupported request options."`; `operatorAction`: `"Inspect validation details and request logs; do not retry unchanged input."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Correct the request input and retry after validation passes."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/impersonation-core/src/libs/problems/ImpersonationProblems.ts"`; `kind`: `"problem-class"`; `line`: `40`; \}\]; `status`: `400`; `title`: `"Bad Request"`; \}, \{ `category`: `"NotFound"`; `code`: `"IMPERSONATION_SESSION_NOT_FOUND"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#impersonation-session-not-found"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The requested resource or route-visible record does not exist."`; `operatorAction`: `"Confirm tenant scoping, data retention, and backing-store lookup behavior."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Verify the identifier and refresh the resource list before retrying."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/impersonation-core/src/libs/problems/ImpersonationProblems.ts"`; `kind`: `"problem-class"`; `line`: `58`; \}\]; `status`: `404`; `title`: `"Not Found"`; \}, \{ `category`: `"NotFound"`; `code`: `"IMPERSONATION_TARGET_NOT_FOUND"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#impersonation-target-not-found"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The requested resource or route-visible record does not exist."`; `operatorAction`: `"Confirm tenant scoping, data retention, and backing-store lookup behavior."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Verify the identifier and refresh the resource list before retrying."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/impersonation-core/src/libs/problems/ImpersonationProblems.ts"`; `kind`: `"problem-class"`; `line`: `22`; \}\]; `status`: `404`; `title`: `"Not Found"`; \}, \{ `category`: `"NotFound"`; `code`: `"INDEX_NOT_FOUND"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#index-not-found"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The requested resource or route-visible record does not exist."`; `operatorAction`: `"Confirm tenant scoping, data retention, and backing-store lookup behavior."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Verify the identifier and refresh the resource list before retrying."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/search-core/src/libs/problems/SearchProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `57`; \}\]; `status`: `404`; `title`: `"Not Found"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"integrations-posthog/missing-config"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#integrations-posthog-missing-config"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/integrations-posthog/src/libs/problems/PostHogProblems.ts"`; `kind`: `"problem-class"`; `line`: `4`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"BadRequest"`; `code`: `"INVALID_AUTO_JOIN_ROLE"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#invalid-auto-join-role"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The caller sent malformed input or unsupported request options."`; `operatorAction`: `"Inspect validation details and request logs; do not retry unchanged input."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Correct the request input and retry after validation passes."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/invitation-core/src/libs/problems/DomainPolicyProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `18`; \}\]; `status`: `400`; `title`: `"Bad Request"`; \}, \{ `category`: `"BadRequest"`; `code`: `"INVALID_CURSOR"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#invalid-cursor"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The caller sent malformed input or unsupported request options."`; `operatorAction`: `"Inspect validation details and request logs; do not retry unchanged input."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Correct the request input and retry after validation passes."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/pagination-core/src/libs/problems.ts"`; `kind`: `"problem-class"`; `line`: `4`; \}\]; `status`: `400`; `title`: `"Bad Request"`; \}, \{ `category`: `"ValidationError"`; `code`: `"INVALID_INVITATION_EXPIRY_DURATION"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#invalid-invitation-expiry-duration"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request or generated contract failed schema or semantic validation."`; `operatorAction`: `"Inspect schema diagnostics, generated contracts, and validation metadata."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Fix the invalid fields and retry with schema-conformant input."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/invitation-core/src/libs/problems/InvitationProblems.ts"`; `kind`: `"problem-class"`; `line`: `32`; \}\]; `status`: `422`; `title`: `"Validation Error"`; \}, \{ `category`: `"BadRequest"`; `code`: `"INVALID_PAGINATION_DIRECTION"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#invalid-pagination-direction"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The caller sent malformed input or unsupported request options."`; `operatorAction`: `"Inspect validation details and request logs; do not retry unchanged input."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Correct the request input and retry after validation passes."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/pagination-core/src/libs/problems.ts"`; `kind`: `"problem-class"`; `line`: `40`; \}\]; `status`: `400`; `title`: `"Bad Request"`; \}, \{ `category`: `"ValidationError"`; `code`: `"INVALID_RETRY_CONFIGURATION"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#invalid-retry-configuration"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request or generated contract failed schema or semantic validation."`; `operatorAction`: `"Inspect schema diagnostics, generated contracts, and validation metadata."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Fix the invalid fields and retry with schema-conformant input."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/retry-core/src/libs/errors/RetryInfrastructureProblem.ts"`; `kind`: `"problem-class"`; `line`: `52`; \}\]; `status`: `422`; `title`: `"Validation Error"`; \}, \{ `category`: `"BadRequest"`; `code`: `"INVALID_ROLE"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#invalid-role"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The caller sent malformed input or unsupported request options."`; `operatorAction`: `"Inspect validation details and request logs; do not retry unchanged input."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Correct the request input and retry after validation passes."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/membership-core/src/libs/problems/MembershipProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `44`; \}\]; `status`: `400`; `title`: `"Bad Request"`; \}, \{ `category`: `"Conflict"`; `code`: `"INVITATION_ALREADY_ACCEPTED"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#invitation-already-accepted"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request conflicts with current state or an idempotency constraint."`; `operatorAction`: `"Inspect concurrent writes, idempotency keys, and uniqueness constraints."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Refresh state, resolve the conflict, and retry with the updated intent."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/invitation-core/src/libs/problems/InvitationProblems.ts"`; `kind`: `"problem-class"`; `line`: `73`; \}\]; `status`: `409`; `title`: `"Conflict"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"INVITATION_CREATION_FAILED"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#invitation-creation-failed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/invitation-core/src/libs/problems/InvitationProblems.ts"`; `kind`: `"problem-class"`; `line`: `4`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"Forbidden"`; `code`: `"INVITATION_EMAIL_MISMATCH"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#invitation-email-mismatch"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The authenticated caller is not allowed to perform the requested action."`; `operatorAction`: `"Review policy, role, tenant, entitlement, and impersonation context."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Request the required permission or choose an allowed action."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/invitation-core/src/libs/problems/InvitationProblems.ts"`; `kind`: `"problem-class"`; `line`: `84`; \}\]; `status`: `403`; `title`: `"Forbidden"`; \}, \{ `category`: `"Gone"`; `code`: `"INVITATION_EXPIRED"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#invitation-expired"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The requested resource is no longer available through this API surface."`; `operatorAction`: `"Verify lifecycle, migration, deprecation, and retention state."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Stop using the stale reference and follow the replacement flow when available."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/invitation-core/src/libs/problems/InvitationProblems.ts"`; `kind`: `"problem-class"`; `line`: `62`; \}\]; `status`: `410`; `title`: `"Gone"`; \}, \{ `category`: `"Conflict"`; `code`: `"INVITATION_IDEMPOTENCY_CONFLICT"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#invitation-idempotency-conflict"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request conflicts with current state or an idempotency constraint."`; `operatorAction`: `"Inspect concurrent writes, idempotency keys, and uniqueness constraints."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Refresh state, resolve the conflict, and retry with the updated intent."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/invitation-core/src/libs/problems/InvitationProblems.ts"`; `kind`: `"problem-class"`; `line`: `19`; \}\]; `status`: `409`; `title`: `"Conflict"`; \}, \{ `category`: `"Conflict"`; `code`: `"INVITATION_INVALID_STATUS"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#invitation-invalid-status"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request conflicts with current state or an idempotency constraint."`; `operatorAction`: `"Inspect concurrent writes, idempotency keys, and uniqueness constraints."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Refresh state, resolve the conflict, and retry with the updated intent."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/invitation-core/src/libs/problems/InvitationProblems.ts"`; `kind`: `"problem-class"`; `line`: `95`; \}\]; `status`: `409`; `title`: `"Conflict"`; \}, \{ `category`: `"NotFound"`; `code`: `"INVITATION_NOT_FOUND"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#invitation-not-found"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The requested resource or route-visible record does not exist."`; `operatorAction`: `"Confirm tenant scoping, data retention, and backing-store lookup behavior."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Verify the identifier and refresh the resource list before retrying."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/invitation-core/src/libs/problems/InvitationProblems.ts"`; `kind`: `"problem-class"`; `line`: `51`; \}\]; `status`: `404`; `title`: `"Not Found"`; \}, \{ `category`: `"TooManyRequests"`; `code`: `"INVITATION_RATE_LIMIT_EXCEEDED"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#invitation-rate-limit-exceeded"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The caller exceeded a rate, quota, or concurrency limit."`; `operatorAction`: `"Check limiter state, quota configuration, and abuse signals."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Wait for the retry window or reduce request volume."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/invitation-core/src/libs/problems/RateLimitProblems.ts"`; `kind`: `"problem-class"`; `line`: `4`; \}\]; `status`: `429`; `title`: `"Too Many Requests"`; \}, \{ `category`: `"BadRequest"`; `code`: `"invitation-core/batch-size-exceeded"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#invitation-core-batch-size-exceeded"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The caller sent malformed input or unsupported request options."`; `operatorAction`: `"Inspect validation details and request logs; do not retry unchanged input."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Correct the request input and retry after validation passes."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/invitation-core/src/libs/problems/BatchInviteProblems.ts"`; `kind`: `"problem-class"`; `line`: `4`; \}\]; `status`: `400`; `title`: `"Bad Request"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"invitation-drizzle/token-cipher-failed"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#invitation-drizzle-token-cipher-failed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/invitation-drizzle/src/libs/InvitationTokenCipher.ts"`; `kind`: `"problem-constructor"`; `line`: `25`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"LAMBDA_TIMEOUT_GUARD"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#lambda-timeout-guard"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/retry-core/src/libs/errors/RetryInfrastructureProblem.ts"`; `kind`: `"problem-class"`; `line`: `39`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"Forbidden"`; `code`: `"LAST_OWNER"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#last-owner"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The authenticated caller is not allowed to perform the requested action."`; `operatorAction`: `"Review policy, role, tenant, entitlement, and impersonation context."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Request the required permission or choose an allowed action."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/membership-core/src/libs/problems/MembershipProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `31`; \}\]; `status`: `403`; `title`: `"Forbidden"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"lifecycle-core/action-adapter-failed"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#lifecycle-core-action-adapter-failed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/lifecycle-core/src/libs/problems/LifecycleProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `38`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"lifecycle-core/duplicate-rule"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#lifecycle-core-duplicate-rule"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/lifecycle-core/src/libs/problems/LifecycleProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `6`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"Conflict"`; `code`: `"lifecycle-core/monetization-recipe-capability-missing"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#lifecycle-core-monetization-recipe-capability-missing"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request conflicts with current state or an idempotency constraint."`; `operatorAction`: `"Inspect concurrent writes, idempotency keys, and uniqueness constraints."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Refresh state, resolve the conflict, and retry with the updated intent."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/lifecycle-core/src/libs/problems/LifecycleProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `191`; \}\]; `status`: `409`; `title`: `"Conflict"`; \}, \{ `category`: `"ValidationError"`; `code`: `"lifecycle-core/monetization-signal-invalid"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#lifecycle-core-monetization-signal-invalid"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request or generated contract failed schema or semantic validation."`; `operatorAction`: `"Inspect schema diagnostics, generated contracts, and validation metadata."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Fix the invalid fields and retry with schema-conformant input."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/lifecycle-core/src/libs/problems/LifecycleProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `174`; \}\]; `status`: `422`; `title`: `"Validation Error"`; \}, \{ `category`: `"Conflict"`; `code`: `"lifecycle-core/monetization-threshold-claim-unavailable"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#lifecycle-core-monetization-threshold-claim-unavailable"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request conflicts with current state or an idempotency constraint."`; `operatorAction`: `"Inspect concurrent writes, idempotency keys, and uniqueness constraints."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Refresh state, resolve the conflict, and retry with the updated intent."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/lifecycle-core/src/libs/problems/LifecycleProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `209`; \}\]; `status`: `409`; `title`: `"Conflict"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"lifecycle-core/rule-action-contract-mismatch"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#lifecycle-core-rule-action-contract-mismatch"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/lifecycle-core/src/libs/problems/LifecycleProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `156`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"Conflict"`; `code`: `"lifecycle-core/rule-command-conflict"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#lifecycle-core-rule-command-conflict"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request conflicts with current state or an idempotency constraint."`; `operatorAction`: `"Inspect concurrent writes, idempotency keys, and uniqueness constraints."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Refresh state, resolve the conflict, and retry with the updated intent."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/lifecycle-core/src/libs/problems/LifecycleProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `103`; \}\]; `status`: `409`; `title`: `"Conflict"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"lifecycle-core/rule-definition-invalid"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#lifecycle-core-rule-definition-invalid"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/lifecycle-core/src/libs/problems/LifecycleProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `22`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"Conflict"`; `code`: `"lifecycle-core/rule-transition-invalid"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#lifecycle-core-rule-transition-invalid"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request conflicts with current state or an idempotency constraint."`; `operatorAction`: `"Inspect concurrent writes, idempotency keys, and uniqueness constraints."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Refresh state, resolve the conflict, and retry with the updated intent."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/lifecycle-core/src/libs/problems/LifecycleProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `119`; \}\]; `status`: `409`; `title`: `"Conflict"`; \}, \{ `category`: `"Conflict"`; `code`: `"lifecycle-core/rule-version-conflict"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#lifecycle-core-rule-version-conflict"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request conflicts with current state or an idempotency constraint."`; `operatorAction`: `"Inspect concurrent writes, idempotency keys, and uniqueness constraints."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Refresh state, resolve the conflict, and retry with the updated intent."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/lifecycle-core/src/libs/problems/LifecycleProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `85`; \}\]; `status`: `409`; `title`: `"Conflict"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"lifecycle-core/rule-version-definition-invalid"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#lifecycle-core-rule-version-definition-invalid"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/lifecycle-core/src/libs/problems/LifecycleProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `139`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"Conflict"`; `code`: `"lifecycle-core/rule-version-unavailable"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#lifecycle-core-rule-version-unavailable"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request conflicts with current state or an idempotency constraint."`; `operatorAction`: `"Inspect concurrent writes, idempotency keys, and uniqueness constraints."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Refresh state, resolve the conflict, and retry with the updated intent."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/lifecycle-core/src/libs/problems/LifecycleProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `67`; \}\]; `status`: `409`; `title`: `"Conflict"`; \}, \{ `category`: `"NotFound"`; `code`: `"lifecycle-core/rule-version-unknown"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#lifecycle-core-rule-version-unknown"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The requested resource or route-visible record does not exist."`; `operatorAction`: `"Confirm tenant scoping, data retention, and backing-store lookup behavior."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Verify the identifier and refresh the resource list before retrying."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/lifecycle-core/src/libs/problems/LifecycleProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `49`; \}\]; `status`: `404`; `title`: `"Not Found"`; \}, \{ `category`: `"NotFound"`; `code`: `"LLM_PROVIDER_NOT_FOUND"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#llm-provider-not-found"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The requested resource or route-visible record does not exist."`; `operatorAction`: `"Confirm tenant scoping, data retention, and backing-store lookup behavior."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Verify the identifier and refresh the resource list before retrying."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/llm-core/src/libs/problems/LlmProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `9`; \}\]; `status`: `404`; `title`: `"Not Found"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"LLM_SERVICE_ERROR"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#llm-service-error"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/llm-core/src/libs/problems/LlmServiceProblem.ts"`; `kind`: `"problem-constructor"`; `line`: `8`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"BadRequest"`; `code`: `"llm-core/invalid-llm-prompt"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#llm-core-invalid-llm-prompt"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The caller sent malformed input or unsupported request options."`; `operatorAction`: `"Inspect validation details and request logs; do not retry unchanged input."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Correct the request input and retry after validation passes."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/llm-core/src/libs/problems/LlmProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `85`; \}\]; `status`: `400`; `title`: `"Bad Request"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"llm-core/invalid-llm-response"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#llm-core-invalid-llm-response"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/llm-core/src/libs/problems/LlmProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `65`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"llm-core/llm-service-not-initialized"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#llm-core-llm-service-not-initialized"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/llm-core/src/libs/problems/LlmProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `75`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"TooManyRequests"`; `code`: `"llm-core/rate-limit-exceeded"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#llm-core-rate-limit-exceeded"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The caller exceeded a rate, quota, or concurrency limit."`; `operatorAction`: `"Check limiter state, quota configuration, and abuse signals."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Wait for the retry window or reduce request volume."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/llm-core/src/libs/problems/LlmProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `43`; \}\]; `status`: `429`; `title`: `"Too Many Requests"`; \}, \{ `category`: `"Forbidden"`; `code`: `"llm-metering/cost-limit-exceeded"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#llm-metering-cost-limit-exceeded"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The authenticated caller is not allowed to perform the requested action."`; `operatorAction`: `"Review policy, role, tenant, entitlement, and impersonation context."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Request the required permission or choose an allowed action."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/llm-metering/src/libs/problems/LlmMeteringProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `41`; \}\]; `status`: `403`; `title`: `"Forbidden"`; \}, \{ `category`: `"NotFound"`; `code`: `"llm-metering/pricing-not-found"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#llm-metering-pricing-not-found"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The requested resource or route-visible record does not exist."`; `operatorAction`: `"Confirm tenant scoping, data retention, and backing-store lookup behavior."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Verify the identifier and refresh the resource list before retrying."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/llm-metering/src/libs/problems/LlmMeteringProblems.ts"`; `kind`: `"problem-class"`; `line`: `58`; \}\]; `status`: `404`; `title`: `"Not Found"`; \}, \{ `category`: `"Conflict"`; `code`: `"llm-metering/pricing-registry-conflict"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#llm-metering-pricing-registry-conflict"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request conflicts with current state or an idempotency constraint."`; `operatorAction`: `"Inspect concurrent writes, idempotency keys, and uniqueness constraints."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Refresh state, resolve the conflict, and retry with the updated intent."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/llm-metering/src/libs/problems/LlmMeteringProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `71`; \}\]; `status`: `409`; `title`: `"Conflict"`; \}, \{ `category`: `"Forbidden"`; `code`: `"llm-metering/quota-exceeded"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#llm-metering-quota-exceeded"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The authenticated caller is not allowed to perform the requested action."`; `operatorAction`: `"Review policy, role, tenant, entitlement, and impersonation context."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Request the required permission or choose an allowed action."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/llm-metering/src/libs/problems/LlmMeteringProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `24`; \}\]; `status`: `403`; `title`: `"Forbidden"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"llm-metering/record-failed"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#llm-metering-record-failed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/llm-metering/src/libs/problems/LlmMeteringProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `7`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"BadRequest"`; `code`: `"llm-openai/aborted"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#llm-openai-aborted"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The caller sent malformed input or unsupported request options."`; `operatorAction`: `"Inspect validation details and request logs; do not retry unchanged input."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Correct the request input and retry after validation passes."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/llm-openai/src/libs/problems/OpenAiProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `117`; \}\]; `status`: `400`; `title`: `"Bad Request"`; \}, \{ `category`: `"Unauthorized"`; `code`: `"llm-openai/authentication-failed"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#llm-openai-authentication-failed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request did not include valid authentication credentials."`; `operatorAction`: `"Check authentication configuration, token issuer, and clock skew."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Sign in again or provide a valid credential."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/llm-openai/src/libs/problems/OpenAiProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `42`; \}\]; `status`: `401`; `title`: `"Unauthorized"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"llm-openai/invalid-response"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#llm-openai-invalid-response"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/llm-openai/src/libs/problems/OpenAiProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `135`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"llm-openai/missing-config"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#llm-openai-missing-config"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/llm-openai/src/libs/problems/OpenAiProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `24`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"TooManyRequests"`; `code`: `"llm-openai/rate-limited"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#llm-openai-rate-limited"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The caller exceeded a rate, quota, or concurrency limit."`; `operatorAction`: `"Check limiter state, quota configuration, and abuse signals."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Wait for the retry window or reduce request volume."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/llm-openai/src/libs/problems/OpenAiProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `57`; \}\]; `status`: `429`; `title`: `"Too Many Requests"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"llm-openai/retryable-upstream"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#llm-openai-retryable-upstream"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/llm-openai/src/libs/problems/OpenAiProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `72`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"llm-openai/terminal-upstream"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#llm-openai-terminal-upstream"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/llm-openai/src/libs/problems/OpenAiProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `87`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"BadRequest"`; `code`: `"llm-openai/validation-failed"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#llm-openai-validation-failed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The caller sent malformed input or unsupported request options."`; `operatorAction`: `"Inspect validation details and request logs; do not retry unchanged input."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Correct the request input and retry after validation passes."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/llm-openai/src/libs/problems/OpenAiProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `102`; \}\]; `status`: `400`; `title`: `"Bad Request"`; \}, \{ `category`: `"Forbidden"`; `code`: `"MEMBERSHIP_CONSTRAINT"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#membership-constraint"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The authenticated caller is not allowed to perform the requested action."`; `operatorAction`: `"Review policy, role, tenant, entitlement, and impersonation context."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Request the required permission or choose an allowed action."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/membership-core/src/libs/problems/MembershipConstraintProblem.ts"`; `kind`: `"problem-constructor"`; `line`: `9`; \}\]; `status`: `403`; `title`: `"Forbidden"`; \}, \{ `category`: `"NotFound"`; `code`: `"MEMBERSHIP_NOT_FOUND"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#membership-not-found"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The requested resource or route-visible record does not exist."`; `operatorAction`: `"Confirm tenant scoping, data retention, and backing-store lookup behavior."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Verify the identifier and refresh the resource list before retrying."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/membership-core/src/libs/problems/MembershipProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `5`; \}\]; `status`: `404`; `title`: `"Not Found"`; \}, \{ `category`: `"BadRequest"`; `code`: `"meta-vite/server-action-invalid-path"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#meta-vite-server-action-invalid-path"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The caller sent malformed input or unsupported request options."`; `operatorAction`: `"Inspect validation details and request logs; do not retry unchanged input."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Correct the request input and retry after validation passes."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/meta-vite/src/libs/actions/serverActions.ts"`; `kind`: `"problem-class"`; `line`: `80`; \}\]; `status`: `400`; `title`: `"Bad Request"`; \}, \{ `category`: `"NotFound"`; `code`: `"meta-vite/server-action-not-found"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#meta-vite-server-action-not-found"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The requested resource or route-visible record does not exist."`; `operatorAction`: `"Confirm tenant scoping, data retention, and backing-store lookup behavior."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Verify the identifier and refresh the resource list before retrying."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/meta-vite/src/libs/actions/serverActions.ts"`; `kind`: `"problem-class"`; `line`: `66`; \}\]; `status`: `404`; `title`: `"Not Found"`; \}, \{ `category`: `"ValidationError"`; `code`: `"meta-vite/server-action-validation-failed"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#meta-vite-server-action-validation-failed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request or generated contract failed schema or semantic validation."`; `operatorAction`: `"Inspect schema diagnostics, generated contracts, and validation metadata."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Fix the invalid fields and retry with schema-conformant input."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/meta-vite/src/libs/actions/serverActions.ts"`; `kind`: `"problem-class"`; `line`: `94`; \}\]; `status`: `422`; `title`: `"Validation Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"meter/insert-failed"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#meter-insert-failed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `13`; `file`: `"packages/metering-drizzle/src/libs/DrizzleMeterRepository.ts"`; `kind`: `"problem-factory"`; `line`: `146`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"metering-drizzle/migration-query-result-unsupported"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#metering-drizzle-migration-query-result-unsupported"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `9`; `file`: `"packages/metering-drizzle/src/migrations/addUsageEnvelopeFields.ts"`; `kind`: `"problem-factory"`; `line`: `125`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"metering-drizzle/usage-envelope-not-configured"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#metering-drizzle-usage-envelope-not-configured"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/metering-drizzle/src/libs/problems/UsageEnvelopeConfigurationProblem.ts"`; `kind`: `"problem-constructor"`; `line`: `6`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"metering-upstash/missing-config"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#metering-upstash-missing-config"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/metering-upstash/src/libs/problems/UpstashMeteringProblems.ts"`; `kind`: `"problem-class"`; `line`: `4`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"metering/atomic-quota-not-supported"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#metering-atomic-quota-not-supported"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/metering-core/src/libs/problems/AtomicQuotaNotSupportedProblem.ts"`; `kind`: `"problem-class"`; `line`: `4`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"metering/billable-usage-journal-required"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#metering-billable-usage-journal-required"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"A meter declares billing as required, but MeterRegistry validation cannot find a persistent BillableUsageJournal."`; `operatorAction`: `"Configure a persistent BillableUsageJournal before loadAll, lazy meter lookup, or registration validates a billing-required meter."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Do not retry with the same configuration; connect a persistent journal or change the meter billing contract first."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/metering-core/src/libs/problems/BillableUsageJournalRequiredProblem.ts"`; `kind`: `"problem-constructor"`; `line`: `5`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"Conflict"`; `code`: `"metering/duplicate-record"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#metering-duplicate-record"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request conflicts with current state or an idempotency constraint."`; `operatorAction`: `"Inspect concurrent writes, idempotency keys, and uniqueness constraints."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Refresh state, resolve the conflict, and retry with the updated intent."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/metering-core/src/libs/problems/DuplicateRecordProblem.ts"`; `kind`: `"problem-constructor"`; `line`: `5`; \}\]; `status`: `409`; `title`: `"Conflict"`; \}, \{ `category`: `"NotFound"`; `code`: `"metering/invalid-meter"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#metering-invalid-meter"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The requested resource or route-visible record does not exist."`; `operatorAction`: `"Confirm tenant scoping, data retention, and backing-store lookup behavior."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Verify the identifier and refresh the resource list before retrying."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/metering-core/src/libs/problems/InvalidMeterProblem.ts"`; `kind`: `"problem-constructor"`; `line`: `5`; \}\]; `status`: `404`; `title`: `"Not Found"`; \}, \{ `category`: `"ValidationError"`; `code`: `"metering/invalid-meter-dimension"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#metering-invalid-meter-dimension"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request or generated contract failed schema or semantic validation."`; `operatorAction`: `"Inspect schema diagnostics, generated contracts, and validation metadata."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Fix the invalid fields and retry with schema-conformant input."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/metering-core/src/libs/problems/InvalidMeterDimensionProblem.ts"`; `kind`: `"problem-constructor"`; `line`: `6`; \}\]; `status`: `422`; `title`: `"Validation Error"`; \}, \{ `category`: `"ValidationError"`; `code`: `"metering/invalid-usage-envelope"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#metering-invalid-usage-envelope"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request or generated contract failed schema or semantic validation."`; `operatorAction`: `"Inspect schema diagnostics, generated contracts, and validation metadata."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Fix the invalid fields and retry with schema-conformant input."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/metering-core/src/libs/problems/InvalidUsageEnvelopeProblem.ts"`; `kind`: `"problem-constructor"`; `line`: `6`; \}\]; `status`: `422`; `title`: `"Validation Error"`; \}, \{ `category`: `"ValidationError"`; `code`: `"metering/invalid-usage-query"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#metering-invalid-usage-query"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request or generated contract failed schema or semantic validation."`; `operatorAction`: `"Inspect schema diagnostics, generated contracts, and validation metadata."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Fix the invalid fields and retry with schema-conformant input."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/metering-core/src/libs/problems/InvalidUsageQueryProblem.ts"`; `kind`: `"problem-constructor"`; `line`: `6`; \}\]; `status`: `422`; `title`: `"Validation Error"`; \}, \{ `category`: `"TooManyRequests"`; `code`: `"metering/quota-exceeded"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#metering-quota-exceeded"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The caller exceeded a rate, quota, or concurrency limit."`; `operatorAction`: `"Check limiter state, quota configuration, and abuse signals."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Wait for the retry window or reduce request volume."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/metering-core/src/libs/problems/QuotaExceededProblem.ts"`; `kind`: `"problem-constructor"`; `line`: `9`; \}\]; `status`: `429`; `title`: `"Too Many Requests"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"metering/redis-error"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#metering-redis-error"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/metering-core/src/libs/problems/RedisProblem.ts"`; `kind`: `"problem-constructor"`; `line`: `8`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"Conflict"`; `code`: `"metering/transition-conflict"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#metering-transition-conflict"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request conflicts with current state or an idempotency constraint."`; `operatorAction`: `"Inspect concurrent writes, idempotency keys, and uniqueness constraints."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Refresh state, resolve the conflict, and retry with the updated intent."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/metering-core/src/libs/problems/MeteringTransitionProblem.ts"`; `kind`: `"problem-constructor"`; `line`: `5`; \}\]; `status`: `409`; `title`: `"Conflict"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"metrics-billing/metric-dropped"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#metrics-billing-metric-dropped"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Billing metrics could not be recorded because the referenced account, subscription, or plan evidence was missing."`; `operatorAction`: `"Use extensions.reason, tenantId, resourceId, and eventKey to rebuild the missing account, subscription, or plan before replay."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Restore the missing billing state identified by reason/resourceId, then replay the same billing event with the same event key."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/metrics-billing/src/libs/problems/BillingMetricsProblems.ts"`; `kind`: `"problem-class"`; `line`: `17`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"metrics-billing/recording-failed"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#metrics-billing-recording-failed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/metrics-billing/src/libs/problems/BillingMetricsProblems.ts"`; `kind`: `"problem-class"`; `line`: `46`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"BusinessRuleViolation"`; `code`: `"metrics-core/carrying-capacity-simulation-error"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#metrics-core-carrying-capacity-simulation-error"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request is syntactically valid but violates a domain rule."`; `operatorAction`: `"Review domain policy, entitlement, quota, and lifecycle rule evidence."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Change the workflow state or request values so the business rule is satisfied."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/metrics-core/src/libs/problems/MetricsProblems.ts"`; `kind`: `"problem-class"`; `line`: `4`; \}\]; `status`: `422`; `title`: `"Business Rule Violation"`; \}, \{ `category`: `"ValidationError"`; `code`: `"metrics-core/carrying-capacity-tenant-required"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#metrics-core-carrying-capacity-tenant-required"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request or generated contract failed schema or semantic validation."`; `operatorAction`: `"Inspect schema diagnostics, generated contracts, and validation metadata."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Fix the invalid fields and retry with schema-conformant input."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/metrics-core/src/libs/problems/MetricsProblems.ts"`; `kind`: `"problem-class"`; `line`: `12`; \}\]; `status`: `422`; `title`: `"Validation Error"`; \}, \{ `category`: `"ValidationError"`; `code`: `"metrics-core/gross-margin-required"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#metrics-core-gross-margin-required"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request or generated contract failed schema or semantic validation."`; `operatorAction`: `"Inspect schema diagnostics, generated contracts, and validation metadata."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Fix the invalid fields and retry with schema-conformant input."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/metrics-core/src/libs/problems/MetricsProblems.ts"`; `kind`: `"problem-class"`; `line`: `42`; \}\]; `status`: `422`; `title`: `"Validation Error"`; \}, \{ `category`: `"ValidationError"`; `code`: `"metrics-core/invalid-retention-movement"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#metrics-core-invalid-retention-movement"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request or generated contract failed schema or semantic validation."`; `operatorAction`: `"Inspect schema diagnostics, generated contracts, and validation metadata."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Fix the invalid fields and retry with schema-conformant input."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/metrics-core/src/libs/problems/MetricsProblems.ts"`; `kind`: `"problem-class"`; `line`: `30`; \}\]; `status`: `422`; `title`: `"Validation Error"`; \}, \{ `category`: `"ValidationError"`; `code`: `"metrics-core/mixed-currency-mrr"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#metrics-core-mixed-currency-mrr"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request or generated contract failed schema or semantic validation."`; `operatorAction`: `"Inspect schema diagnostics, generated contracts, and validation metadata."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Fix the invalid fields and retry with schema-conformant input."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/metrics-core/src/libs/problems/MetricsProblems.ts"`; `kind`: `"problem-class"`; `line`: `50`; \}\]; `status`: `422`; `title`: `"Validation Error"`; \}, \{ `category`: `"NotImplemented"`; `code`: `"metrics-core/retention-metrics-unavailable"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#metrics-core-retention-metrics-unavailable"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The requested capability is not supported by this runtime or adapter."`; `operatorAction`: `"Check runtime capability declarations and provider maturity documentation."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Use a supported capability or choose an adapter/runtime that provides it."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/metrics-core/src/libs/problems/MetricsProblems.ts"`; `kind`: `"problem-class"`; `line`: `20`; \}\]; `status`: `501`; `title`: `"Not Implemented"`; \}, \{ `category`: `"ValidationError"`; `code`: `"metrics-core/snapshot-tenant-required"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#metrics-core-snapshot-tenant-required"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request or generated contract failed schema or semantic validation."`; `operatorAction`: `"Inspect schema diagnostics, generated contracts, and validation metadata."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Fix the invalid fields and retry with schema-conformant input."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/metrics-core/src/libs/SnapshotScheduler.ts"`; `kind`: `"problem-class"`; `line`: `19`; \}\]; `status`: `422`; `title`: `"Validation Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"MIDDLEWARE_EXECUTION_ERROR"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#middleware-execution-error"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/framework-context/src/libs/problems/MiddlewareProblems.ts"`; `kind`: `"problem-class"`; `line`: `7`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"BadRequest"`; `code`: `"migration-runner/database-url-required"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#migration-runner-database-url-required"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The caller sent malformed input or unsupported request options."`; `operatorAction`: `"Inspect validation details and request logs; do not retry unchanged input."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Correct the request input and retry after validation passes."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/migration-runner/src/libs/problems/DatabaseUrlRequiredProblem.ts"`; `kind`: `"problem-class"`; `line`: `4`; \}\]; `status`: `400`; `title`: `"Bad Request"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"migration-runner/file-load-failed"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#migration-runner-file-load-failed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/migration-runner/src/libs/problems/MigrationFileLoadProblem.ts"`; `kind`: `"problem-class"`; `line`: `5`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"Conflict"`; `code`: `"migration-runner/history-drift"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#migration-runner-history-drift"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Recorded migration history no longer matches the available migration files by stable id and name."`; `operatorAction`: `"Compare the checkpoint rows with version-controlled migration files, restore missing or renamed files when possible, and repair history only after verifying the deployed schema."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Restore the original migration file identity or ask an operator to perform an explicitly verified history repair."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/migration-runner/src/libs/problems/MigrationHistoryDriftProblem.ts"`; `kind`: `"problem-class"`; `line`: `16`; \}\]; `status`: `409`; `title`: `"Conflict"`; \}, \{ `category`: `"BadRequest"`; `code`: `"migration-runner/invalid-count"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#migration-runner-invalid-count"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The caller sent malformed input or unsupported request options."`; `operatorAction`: `"Inspect validation details and request logs; do not retry unchanged input."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Correct the request input and retry after validation passes."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/migration-runner/src/libs/problems/InvalidMigrationCountProblem.ts"`; `kind`: `"problem-class"`; `line`: `4`; \}\]; `status`: `400`; `title`: `"Bad Request"`; \}, \{ `category`: `"ValidationError"`; `code`: `"migration-runner/missing-down-function"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#migration-runner-missing-down-function"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request or generated contract failed schema or semantic validation."`; `operatorAction`: `"Inspect schema diagnostics, generated contracts, and validation metadata."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Fix the invalid fields and retry with schema-conformant input."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/migration-runner/src/libs/problems/MissingDownFunctionProblem.ts"`; `kind`: `"problem-class"`; `line`: `4`; \}\]; `status`: `422`; `title`: `"Validation Error"`; \}, \{ `category`: `"ValidationError"`; `code`: `"migration-runner/missing-up-function"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#migration-runner-missing-up-function"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request or generated contract failed schema or semantic validation."`; `operatorAction`: `"Inspect schema diagnostics, generated contracts, and validation metadata."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Fix the invalid fields and retry with schema-conformant input."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/migration-runner/src/libs/problems/MissingUpFunctionProblem.ts"`; `kind`: `"problem-class"`; `line`: `4`; \}\]; `status`: `422`; `title`: `"Validation Error"`; \}, \{ `category`: `"ValidationError"`; `code`: `"migration-runner/transaction-required"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#migration-runner-transaction-required"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request or generated contract failed schema or semantic validation."`; `operatorAction`: `"Inspect schema diagnostics, generated contracts, and validation metadata."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Fix the invalid fields and retry with schema-conformant input."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/migration-runner/src/libs/problems/MigrationTransactionRequiredProblem.ts"`; `kind`: `"problem-class"`; `line`: `4`; \}\]; `status`: `422`; `title`: `"Validation Error"`; \}, \{ `category`: `"BadRequest"`; `code`: `"migration-runner/unsupported-dialect"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#migration-runner-unsupported-dialect"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The caller sent malformed input or unsupported request options."`; `operatorAction`: `"Inspect validation details and request logs; do not retry unchanged input."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Correct the request input and retry after validation passes."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/migration-runner/src/libs/problems/UnsupportedDialectProblem.ts"`; `kind`: `"problem-class"`; `line`: `4`; \}\]; `status`: `400`; `title`: `"Bad Request"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"migration-runner/unsupported-query-result"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#migration-runner-unsupported-query-result"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/migration-runner/src/libs/problems/UnsupportedMigrationQueryResultProblem.ts"`; `kind`: `"problem-class"`; `line`: `11`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"BadRequest"`; `code`: `"MISSING_TENANT"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#missing-tenant"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The caller sent malformed input or unsupported request options."`; `operatorAction`: `"Inspect validation details and request logs; do not retry unchanged input."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Correct the request input and retry after validation passes."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/search-core/src/libs/problems/SearchProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `5`; \}\]; `status`: `400`; `title`: `"Bad Request"`; \}, \{ `category`: `"NotFound"`; `code`: `"MODEL_NOT_FOUND"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#model-not-found"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The requested resource or route-visible record does not exist."`; `operatorAction`: `"Confirm tenant scoping, data retention, and backing-store lookup behavior."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Verify the identifier and refresh the resource list before retrying."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/llm-core/src/libs/problems/LlmServiceProblem.ts"`; `kind`: `"problem-constructor"`; `line`: `25`; \}\]; `status`: `404`; `title`: `"Not Found"`; \}, \{ `category`: `"Forbidden"`; `code`: `"NESTED_IMPERSONATION_NOT_ALLOWED"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#nested-impersonation-not-allowed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The authenticated caller is not allowed to perform the requested action."`; `operatorAction`: `"Review policy, role, tenant, entitlement, and impersonation context."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Request the required permission or choose an allowed action."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/impersonation-core/src/libs/problems/ImpersonationProblems.ts"`; `kind`: `"problem-class"`; `line`: `31`; \}\]; `status`: `403`; `title`: `"Forbidden"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"notifications-core/default-provider-conflict"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#notifications-core-default-provider-conflict"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/notifications-core/src/libs/problems/NotificationProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `80`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"notifications-core/delivery-failed"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#notifications-core-delivery-failed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/notifications-core/src/libs/problems/NotificationProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `169`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"ValidationError"`; `code`: `"notifications-core/idempotency-key-required"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#notifications-core-idempotency-key-required"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request or generated contract failed schema or semantic validation."`; `operatorAction`: `"Inspect schema diagnostics, generated contracts, and validation metadata."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Fix the invalid fields and retry with schema-conformant input."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/notifications-core/src/libs/problems/NotificationProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `241`; \}\]; `status`: `422`; `title`: `"Validation Error"`; \}, \{ `category`: `"ValidationError"`; `code`: `"notifications-core/outbox-idempotency-mismatch"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#notifications-core-outbox-idempotency-mismatch"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request or generated contract failed schema or semantic validation."`; `operatorAction`: `"Inspect schema diagnostics, generated contracts, and validation metadata."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Fix the invalid fields and retry with schema-conformant input."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/notifications-core/src/libs/problems/NotificationProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `257`; \}\]; `status`: `422`; `title`: `"Validation Error"`; \}, \{ `category`: `"ValidationError"`; `code`: `"notifications-core/preference-channel-mismatch"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#notifications-core-preference-channel-mismatch"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request or generated contract failed schema or semantic validation."`; `operatorAction`: `"Inspect schema diagnostics, generated contracts, and validation metadata."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Fix the invalid fields and retry with schema-conformant input."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/notifications-core/src/libs/problems/NotificationProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `224`; \}\]; `status`: `422`; `title`: `"Validation Error"`; \}, \{ `category`: `"ValidationError"`; `code`: `"notifications-core/preference-context-required"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#notifications-core-preference-context-required"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request or generated contract failed schema or semantic validation."`; `operatorAction`: `"Inspect schema diagnostics, generated contracts, and validation metadata."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Fix the invalid fields and retry with schema-conformant input."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/notifications-core/src/libs/problems/NotificationProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `208`; \}\]; `status`: `422`; `title`: `"Validation Error"`; \}, \{ `category`: `"BusinessRuleViolation"`; `code`: `"notifications-core/preference-denied"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#notifications-core-preference-denied"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request is syntactically valid but violates a domain rule."`; `operatorAction`: `"Review domain policy, entitlement, quota, and lifecycle rule evidence."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Change the workflow state or request values so the business rule is satisfied."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/notifications-core/src/libs/problems/NotificationProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `186`; \}\]; `status`: `422`; `title`: `"Business Rule Violation"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"notifications-core/provider-already-registered"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#notifications-core-provider-already-registered"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/notifications-core/src/libs/problems/NotificationProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `64`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"notifications-core/provider-channel-mismatch"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#notifications-core-provider-channel-mismatch"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/notifications-core/src/libs/problems/NotificationProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `102`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"notifications-core/provider-idempotency-unsupported"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#notifications-core-provider-idempotency-unsupported"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/notifications-core/src/libs/problems/NotificationProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `136`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"notifications-core/provider-not-configured"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#notifications-core-provider-not-configured"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/notifications-core/src/libs/problems/NotificationProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `32`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"notifications-core/provider-not-found"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#notifications-core-provider-not-found"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/notifications-core/src/libs/problems/NotificationProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `120`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"notifications-core/provider-not-registered"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#notifications-core-provider-not-registered"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/notifications-core/src/libs/problems/NotificationProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `48`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"notifications-core/send-max-attempts-invalid"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#notifications-core-send-max-attempts-invalid"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/notifications-core/src/libs/problems/NotificationProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `153`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"Conflict"`; `code`: `"notifications-core/template-already-registered"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#notifications-core-template-already-registered"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request conflicts with current state or an idempotency constraint."`; `operatorAction`: `"Inspect concurrent writes, idempotency keys, and uniqueness constraints."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Refresh state, resolve the conflict, and retry with the updated intent."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/notifications-core/src/libs/problems/NotificationProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `273`; \}\]; `status`: `409`; `title`: `"Conflict"`; \}, \{ `category`: `"NotFound"`; `code`: `"notifications-core/template-not-found"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#notifications-core-template-not-found"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The requested resource or route-visible record does not exist."`; `operatorAction`: `"Confirm tenant scoping, data retention, and backing-store lookup behavior."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Verify the identifier and refresh the resource list before retrying."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/notifications-core/src/libs/problems/NotificationProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `291`; \}\]; `status`: `404`; `title`: `"Not Found"`; \}, \{ `category`: `"ValidationError"`; `code`: `"notifications-core/template-variables-invalid"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#notifications-core-template-variables-invalid"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request or generated contract failed schema or semantic validation."`; `operatorAction`: `"Inspect schema diagnostics, generated contracts, and validation metadata."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Fix the invalid fields and retry with schema-conformant input."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/notifications-core/src/libs/problems/NotificationProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `310`; \}\]; `status`: `422`; `title`: `"Validation Error"`; \}, \{ `category`: `"Conflict"`; `code`: `"notifications-resend/idempotency-conflict"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#notifications-resend-idempotency-conflict"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Resend rejected reuse of an idempotency key for a different send request."`; `operatorAction`: `"Audit callers so each business send intent has one stable idempotency key."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Replay the original payload with the same key or use a new key for a changed send intent."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/notifications-resend/src/libs/problems/ResendNotificationProblem.ts"`; `kind`: `"problem-constructor"`; `line`: `54`; \}\]; `status`: `409`; `title`: `"Conflict"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"notifications-resend/missing-config"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#notifications-resend-missing-config"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Required Resend configuration is absent or blank before provider readiness can be proven."`; `operatorAction`: `"Check deployment env/config injection and verify diagnostics do not expose the raw key."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Configure RESEND_API_KEY and a verified default sender, then rerun diagnostics."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/notifications-resend/src/libs/problems/ResendNotificationProblem.ts"`; `kind`: `"problem-constructor"`; `line`: `19`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"notifications-resend/retryable-upstream"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#notifications-resend-retryable-upstream"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Resend returned a transient status, rate limit, or network timeout."`; `operatorAction`: `"Check Resend status, rate limits, and retry-after/upstream status in telemetry."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry with the same idempotency key when the send intent is unchanged."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/notifications-resend/src/libs/problems/ResendNotificationProblem.ts"`; `kind`: `"problem-constructor"`; `line`: `65`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"notifications-resend/terminal-upstream"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#notifications-resend-terminal-upstream"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Resend rejected the request with a non-retryable upstream failure."`; `operatorAction`: `"Inspect redacted upstream code/status and fix provider configuration before retrying."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Do not retry unchanged input; correct the API key, domain, sender verification, or request content."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/notifications-resend/src/libs/problems/ResendNotificationProblem.ts"`; `kind`: `"problem-constructor"`; `line`: `76`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"ValidationError"`; `code`: `"notifications-resend/validation-failed"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#notifications-resend-validation-failed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request or generated contract failed schema or semantic validation."`; `operatorAction`: `"Inspect schema diagnostics, generated contracts, and validation metadata."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Fix the invalid fields and retry with schema-conformant input."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/notifications-resend/src/libs/problems/ResendNotificationProblem.ts"`; `kind`: `"problem-constructor"`; `line`: `40`; \}\]; `status`: `422`; `title`: `"Validation Error"`; \}, \{ `category`: `"Unauthorized"`; `code`: `"onboarding/context-required"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#onboarding-context-required"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request did not include valid authentication credentials."`; `operatorAction`: `"Check authentication configuration, token issuer, and clock skew."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Sign in again or provide a valid credential."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/onboarding-core/src/libs/problems/OnboardingProblems.ts"`; `kind`: `"problem-class"`; `line`: `29`; \}\]; `status`: `401`; `title`: `"Unauthorized"`; \}, \{ `category`: `"NotFound"`; `code`: `"onboarding/definition-not-found"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#onboarding-definition-not-found"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The requested resource or route-visible record does not exist."`; `operatorAction`: `"Confirm tenant scoping, data retention, and backing-store lookup behavior."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Verify the identifier and refresh the resource list before retrying."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/onboarding-core/src/libs/problems/OnboardingProblems.ts"`; `kind`: `"problem-class"`; `line`: `7`; \}\]; `status`: `404`; `title`: `"Not Found"`; \}, \{ `category`: `"NotFound"`; `code`: `"onboarding/step-not-found"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#onboarding-step-not-found"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The requested resource or route-visible record does not exist."`; `operatorAction`: `"Confirm tenant scoping, data retention, and backing-store lookup behavior."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Verify the identifier and refresh the resource list before retrying."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/onboarding-core/src/libs/problems/OnboardingProblems.ts"`; `kind`: `"problem-class"`; `line`: `18`; \}\]; `status`: `404`; `title`: `"Not Found"`; \}, \{ `category`: `"ValidationError"`; `code`: `"openapi-spec/controller-typescript-diagnostics"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#openapi-spec-controller-typescript-diagnostics"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request or generated contract failed schema or semantic validation."`; `operatorAction`: `"Inspect schema diagnostics, generated contracts, and validation metadata."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Fix the invalid fields and retry with schema-conformant input."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/openapi-spec/src/libs/loadControllers.ts"`; `kind`: `"problem-constructor"`; `line`: `70`; \}\]; `status`: `422`; `title`: `"Validation Error"`; \}, \{ `category`: `"ValidationError"`; `code`: `"openapi-spec/invalid-contract"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#openapi-spec-invalid-contract"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request or generated contract failed schema or semantic validation."`; `operatorAction`: `"Inspect schema diagnostics, generated contracts, and validation metadata."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Fix the invalid fields and retry with schema-conformant input."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/openapi-spec/src/libs/emitOpenAPI.ts"`; `kind`: `"problem-constructor"`; `line`: `106`; \}\]; `status`: `422`; `title`: `"Validation Error"`; \}, \{ `category`: `"BadRequest"`; `code`: `"openapi-spec/no-rest-controllers-found"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#openapi-spec-no-rest-controllers-found"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The caller sent malformed input or unsupported request options."`; `operatorAction`: `"Inspect validation details and request logs; do not retry unchanged input."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Correct the request input and retry after validation passes."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/openapi-spec/src/libs/loadControllers.ts"`; `kind`: `"problem-constructor"`; `line`: `31`; \}\]; `status`: `400`; `title`: `"Bad Request"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"OTLP_ENDPOINT_REQUIRED"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#otlp-endpoint-required"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/telemetry-sdk-node/src/libs/problems/TelemetryProblems.ts"`; `kind`: `"problem-class"`; `line`: `20`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"outbox-core/dispatch-failed"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#outbox-core-dispatch-failed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/outbox-core/src/libs/problems/OutboxProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `86`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"outbox-core/failure-metadata-missing"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#outbox-core-failure-metadata-missing"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"A dispatcher attempted to mark an outbox record failed without the required retry metadata extensions."`; `operatorAction`: `"Audit dispatcher error mapping so every failure path preserves attempt, retryability, terminal state, and failedAt metadata."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Abort the dispatch attempt and pass an OutboxDispatchProblem or equivalent Problem with outbox retry metadata."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/outbox-core/src/libs/problems/OutboxProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `116`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"Conflict"`; `code`: `"outbox-core/record-id-conflict"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#outbox-core-record-id-conflict"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"A caller tried to create an outbox record with an explicit id that already belongs to another idempotency scope."`; `operatorAction`: `"Inspect the producer id/idempotency assignment path and remove any shared id generator or manual id reuse."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Reuse the original idempotency key for the same intent or choose a new record id for a different intent."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/outbox-core/src/libs/problems/OutboxProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `103`; \}\]; `status`: `409`; `title`: `"Conflict"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"outbox-core/unit-of-work-context-invalid"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#outbox-core-unit-of-work-context-invalid"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"An outbox write received a Unit of Work context that was missing, malformed, or created by another store instance."`; `operatorAction`: `"Check transaction boundary wiring so repository and outbox writes share the same store-owned Unit of Work client."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Abort the write and use the context supplied by the active TransactionalOutboxStore.runInUnitOfWork callback."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/outbox-core/src/libs/problems/OutboxProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `129`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"Forbidden"`; `code`: `"OWNERSHIP_TRANSFER_REQUIRED"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#ownership-transfer-required"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The authenticated caller is not allowed to perform the requested action."`; `operatorAction`: `"Review policy, role, tenant, entitlement, and impersonation context."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Request the required permission or choose an allowed action."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/membership-core/src/libs/problems/MembershipProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `65`; \}\]; `status`: `403`; `title`: `"Forbidden"`; \}, \{ `category`: `"BadRequest"`; `code`: `"problems-core/invalid-extensions"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#problems-core-invalid-extensions"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The caller sent malformed input or unsupported request options."`; `operatorAction`: `"Inspect validation details and request logs; do not retry unchanged input."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Correct the request input and retry after validation passes."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/problems-core/src/libs/problems/InvalidExtensionsProblem.ts"`; `kind`: `"problem-class"`; `line`: `5`; \}\]; `status`: `400`; `title`: `"Bad Request"`; \}, \{ `category`: `"BadRequest"`; `code`: `"problems-core/parse-error"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#problems-core-parse-error"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The caller sent malformed input or unsupported request options."`; `operatorAction`: `"Inspect validation details and request logs; do not retry unchanged input."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Correct the request input and retry after validation passes."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/problems-core/src/libs/problems/ProblemDetailsParseProblem.ts"`; `kind`: `"problem-class"`; `line`: `5`; \}\]; `status`: `400`; `title`: `"Bad Request"`; \}, \{ `category`: `"ValidationError"`; `code`: `"problems-core/problem-registry-invalid"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#problems-core-problem-registry-invalid"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request or generated contract failed schema or semantic validation."`; `operatorAction`: `"Inspect schema diagnostics, generated contracts, and validation metadata."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Fix the invalid fields and retry with schema-conformant input."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/problems-core/src/libs/ProblemRegistry.ts"`; `kind`: `"problem-constructor"`; `line`: `210`; \}\]; `status`: `422`; `title`: `"Validation Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"problems-core/unhandled-category"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#problems-core-unhandled-category"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/problems-core/src/libs/ProblemCategoryMapper.ts"`; `kind`: `"problem-class"`; `line`: `19`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"ValidationError"`; `code`: `"protocols-core/contract-graph-diagnostics"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#protocols-core-contract-graph-diagnostics"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request or generated contract failed schema or semantic validation."`; `operatorAction`: `"Inspect schema diagnostics, generated contracts, and validation metadata."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Fix the invalid fields and retry with schema-conformant input."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/protocols-core/src/libs/ContractGraph.ts"`; `kind`: `"problem-constructor"`; `line`: `160`; \}\]; `status`: `422`; `title`: `"Validation Error"`; \}, \{ `category`: `"BadRequest"`; `code`: `"protocols-graphql/auth-invalid-header-format"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#protocols-graphql-auth-invalid-header-format"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The caller sent malformed input or unsupported request options."`; `operatorAction`: `"Inspect validation details and request logs; do not retry unchanged input."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Correct the request input and retry after validation passes."`; \}; `sources`: readonly \[\{ `column`: `13`; `file`: `"packages/protocols-graphql/src/libs/guards/AuthGuard.ts"`; `kind`: `"problem-factory"`; `line`: `71`; \}\]; `status`: `400`; `title`: `"Bad Request"`; \}, \{ `category`: `"BadRequest"`; `code`: `"protocols-graphql/auth-invalid-request"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#protocols-graphql-auth-invalid-request"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The caller sent malformed input or unsupported request options."`; `operatorAction`: `"Inspect validation details and request logs; do not retry unchanged input."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Correct the request input and retry after validation passes."`; \}; `sources`: readonly \[\{ `column`: `13`; `file`: `"packages/protocols-graphql/src/libs/guards/AuthGuard.ts"`; `kind`: `"problem-factory"`; `line`: `54`; \}\]; `status`: `400`; `title`: `"Bad Request"`; \}, \{ `category`: `"Unauthorized"`; `code`: `"protocols-graphql/auth-invalid-token"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#protocols-graphql-auth-invalid-token"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request did not include valid authentication credentials."`; `operatorAction`: `"Check authentication configuration, token issuer, and clock skew."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Sign in again or provide a valid credential."`; \}; `sources`: readonly \[\{ `column`: `10`; `file`: `"packages/protocols-graphql/src/libs/guards/AuthGuard.ts"`; `kind`: `"problem-factory"`; `line`: `14`; \}\]; `status`: `401`; `title`: `"Unauthorized"`; \}, \{ `category`: `"Unauthorized"`; `code`: `"protocols-graphql/auth-missing-header"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#protocols-graphql-auth-missing-header"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request did not include valid authentication credentials."`; `operatorAction`: `"Check authentication configuration, token issuer, and clock skew."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Sign in again or provide a valid credential."`; \}; `sources`: readonly \[\{ `column`: `13`; `file`: `"packages/protocols-graphql/src/libs/guards/AuthGuard.ts"`; `kind`: `"problem-factory"`; `line`: `63`; \}\]; `status`: `401`; `title`: `"Unauthorized"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"protocols-graphql/auth-verifier-unavailable"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#protocols-graphql-auth-verifier-unavailable"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `13`; `file`: `"packages/protocols-graphql/src/libs/guards/AuthGuard.ts"`; `kind`: `"problem-factory"`; `line`: `97`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"Forbidden"`; `code`: `"protocols-graphql/guard-denied"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#protocols-graphql-guard-denied"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The authenticated caller is not allowed to perform the requested action."`; `operatorAction`: `"Review policy, role, tenant, entitlement, and impersonation context."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Request the required permission or choose an allowed action."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/protocols-graphql/src/libs/problems/GuardProblems.ts"`; `kind`: `"problem-class"`; `line`: `4`; \}\]; `status`: `403`; `title`: `"Forbidden"`; \}, \{ `category`: `"BadRequest"`; `code`: `"protocols-rest/auth-invalid-header-format"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#protocols-rest-auth-invalid-header-format"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The caller sent malformed input or unsupported request options."`; `operatorAction`: `"Inspect validation details and request logs; do not retry unchanged input."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Correct the request input and retry after validation passes."`; \}; `sources`: readonly \[\{ `column`: `13`; `file`: `"packages/protocols-rest/src/libs/guards/AuthGuard.ts"`; `kind`: `"problem-factory"`; `line`: `77`; \}\]; `status`: `400`; `title`: `"Bad Request"`; \}, \{ `category`: `"BadRequest"`; `code`: `"protocols-rest/auth-invalid-request"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#protocols-rest-auth-invalid-request"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The caller sent malformed input or unsupported request options."`; `operatorAction`: `"Inspect validation details and request logs; do not retry unchanged input."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Correct the request input and retry after validation passes."`; \}; `sources`: readonly \[\{ `column`: `13`; `file`: `"packages/protocols-rest/src/libs/guards/AuthGuard.ts"`; `kind`: `"problem-factory"`; `line`: `59`; \}\]; `status`: `400`; `title`: `"Bad Request"`; \}, \{ `category`: `"Unauthorized"`; `code`: `"protocols-rest/auth-invalid-token"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#protocols-rest-auth-invalid-token"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request did not include valid authentication credentials."`; `operatorAction`: `"Check authentication configuration, token issuer, and clock skew."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Sign in again or provide a valid credential."`; \}; `sources`: readonly \[\{ `column`: `10`; `file`: `"packages/protocols-rest/src/libs/guards/AuthGuard.ts"`; `kind`: `"problem-factory"`; `line`: `15`; \}\]; `status`: `401`; `title`: `"Unauthorized"`; \}, \{ `category`: `"Unauthorized"`; `code`: `"protocols-rest/auth-missing-header"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#protocols-rest-auth-missing-header"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request did not include valid authentication credentials."`; `operatorAction`: `"Check authentication configuration, token issuer, and clock skew."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Sign in again or provide a valid credential."`; \}; `sources`: readonly \[\{ `column`: `13`; `file`: `"packages/protocols-rest/src/libs/guards/AuthGuard.ts"`; `kind`: `"problem-factory"`; `line`: `69`; \}\]; `status`: `401`; `title`: `"Unauthorized"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"protocols-rest/auth-verifier-unavailable"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#protocols-rest-auth-verifier-unavailable"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `13`; `file`: `"packages/protocols-rest/src/libs/guards/AuthGuard.ts"`; `kind`: `"problem-factory"`; `line`: `102`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"protocols-rest/duplicate-parameter-index"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#protocols-rest-duplicate-parameter-index"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `13`; `file`: `"packages/protocols-rest/src/libs/metadata/MetadataReader.ts"`; `kind`: `"problem-factory"`; `line`: `48`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"ValidationError"`; `code`: `"protocols-rest/request-validation-failed"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#protocols-rest-request-validation-failed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request or generated contract failed schema or semantic validation."`; `operatorAction`: `"Inspect schema diagnostics, generated contracts, and validation metadata."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Fix the invalid fields and retry with schema-conformant input."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/protocols-rest/src/libs/validators/ValidationProblem.ts"`; `kind`: `"problem-class"`; `line`: `31`; \}\]; `status`: `422`; `title`: `"Validation Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"protocols-rest/response-validation-failed"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#protocols-rest-response-validation-failed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/protocols-rest/src/libs/validators/ValidationProblem.ts"`; `kind`: `"problem-class"`; `line`: `54`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"ValidationError"`; `code`: `"protocols-rest/validation-failed"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#protocols-rest-validation-failed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request or generated contract failed schema or semantic validation."`; `operatorAction`: `"Inspect schema diagnostics, generated contracts, and validation metadata."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Fix the invalid fields and retry with schema-conformant input."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/protocols-rest/src/libs/validators/ValidationProblem.ts"`; `kind`: `"problem-class"`; `line`: `12`; \}\]; `status`: `422`; `title`: `"Validation Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"protocols-trpc/route-handler-not-callable"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#protocols-trpc-route-handler-not-callable"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/protocols-trpc/src/libs/createTrpcRouter.ts"`; `kind`: `"problem-class"`; `line`: `20`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"BadRequest"`; `code`: `"PUBLIC_EMAIL_DOMAIN_NOT_ALLOWED"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#public-email-domain-not-allowed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The caller sent malformed input or unsupported request options."`; `operatorAction`: `"Inspect validation details and request logs; do not retry unchanged input."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Correct the request input and retry after validation passes."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/invitation-core/src/libs/problems/DomainPolicyProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `5`; \}\]; `status`: `400`; `title`: `"Bad Request"`; \}, \{ `category`: `"TooManyRequests"`; `code`: `"RATE_LIMIT_EXCEEDED"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#rate-limit-exceeded"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The caller exceeded a rate, quota, or concurrency limit."`; `operatorAction`: `"Check limiter state, quota configuration, and abuse signals."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Wait for the retry window or reduce request volume."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/ratelimit-core/src/libs/problems/RateLimitExceededProblem.ts"`; `kind`: `"problem-constructor"`; `line`: `15`; \}\]; `status`: `429`; `title`: `"Too Many Requests"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"RATE_LIMIT_KEY_BUILDER_ERROR"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#rate-limit-key-builder-error"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/ratelimit-core/src/libs/problems/RateLimitConfigProblems.ts"`; `kind`: `"problem-class"`; `line`: `4`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"RATE_LIMIT_REFUND_UNSUPPORTED"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#rate-limit-refund-unsupported"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/ratelimit-core/src/libs/problems/RateLimitConfigProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `25`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"BadRequest"`; `code`: `"RATE_LIMIT_WINDOW_ERROR"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#rate-limit-window-error"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The caller sent malformed input or unsupported request options."`; `operatorAction`: `"Inspect validation details and request logs; do not retry unchanged input."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Correct the request input and retry after validation passes."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/ratelimit-core/src/libs/problems/RateLimitConfigProblems.ts"`; `kind`: `"problem-class"`; `line`: `14`; \}\]; `status`: `400`; `title`: `"Bad Request"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"ratelimit-upstash/invalid-policy"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#ratelimit-upstash-invalid-policy"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/ratelimit-upstash/src/libs/problems/RateLimitUpstashProblems.ts"`; `kind`: `"problem-class"`; `line`: `7`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"ratelimit-upstash/missing-config"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#ratelimit-upstash-missing-config"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/ratelimit-upstash/src/libs/problems/RateLimitUpstashProblems.ts"`; `kind`: `"problem-class"`; `line`: `21`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"repository-core/batch-loader-factory-not-registered"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#repository-core-batch-loader-factory-not-registered"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/repository-core/src/libs/problems/BatchLoadProblems.ts"`; `kind`: `"problem-class"`; `line`: `4`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"repository-core/batch-loader-factory-resolution-failed"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#repository-core-batch-loader-factory-resolution-failed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/repository-core/src/libs/problems/BatchLoadProblems.ts"`; `kind`: `"problem-class"`; `line`: `17`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"repository-core/batch-loader-scope-collision"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#repository-core-batch-loader-scope-collision"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/repository-core/src/libs/problems/BatchLoadProblems.ts"`; `kind`: `"problem-class"`; `line`: `29`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"RESEND_NOTIFICATION_FAILED"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#resend-notification-failed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/notifications-resend/src/libs/problems/ResendNotificationProblem.ts"`; `kind`: `"problem-constructor"`; `line`: `87`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"RETRY_ABORTED"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#retry-aborted"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/retry-core/src/libs/errors/RetryAbortedProblem.ts"`; `kind`: `"problem-class"`; `line`: `7`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"RETRY_CIRCUIT_BREAKER_INVALID_STATE"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#retry-circuit-breaker-invalid-state"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/retry-core/src/libs/errors/RetryInfrastructureProblem.ts"`; `kind`: `"problem-class"`; `line`: `13`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"RETRY_CIRCUIT_BREAKER_LOCK_FAILED"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#retry-circuit-breaker-lock-failed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/retry-core/src/libs/errors/RetryInfrastructureProblem.ts"`; `kind`: `"problem-class"`; `line`: `26`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"RETRY_EXHAUSTED"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#retry-exhausted"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/retry-core/src/libs/errors/RetryExhaustedProblem.ts"`; `kind`: `"problem-class"`; `line`: `7`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"retry-core/circuit-breaker-unexpected-state"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#retry-core-circuit-breaker-unexpected-state"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/retry-core/src/libs/problems/CircuitBreakerProblems.ts"`; `kind`: `"problem-class"`; `line`: `7`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"retry-core/success-hook-failed"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#retry-core-success-hook-failed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The business callback completed successfully, but its onSuccess observation hook failed afterward."`; `operatorAction`: `"Inspect the original cause and repair the named onSuccess listener or telemetry path without replaying the completed callback."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Do not repeat the business operation from this failure; report the hook failure while preserving the successful callback outcome."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/retry-core/src/libs/errors/RetryInfrastructureProblem.ts"`; `kind`: `"problem-class"`; `line`: `75`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"Forbidden"`; `code`: `"ROLE_HIERARCHY_VIOLATION"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#role-hierarchy-violation"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The authenticated caller is not allowed to perform the requested action."`; `operatorAction`: `"Review policy, role, tenant, entitlement, and impersonation context."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Request the required permission or choose an allowed action."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/membership-core/src/libs/problems/MembershipProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `52`; \}\]; `status`: `403`; `title`: `"Forbidden"`; \}, \{ `category`: `"ValidationError"`; `code`: `"rpc-codegen/controller-typescript-diagnostics"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#rpc-codegen-controller-typescript-diagnostics"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request or generated contract failed schema or semantic validation."`; `operatorAction`: `"Inspect schema diagnostics, generated contracts, and validation metadata."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Fix the invalid fields and retry with schema-conformant input."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/rpc-codegen/src/libs/loadRoutes.ts"`; `kind`: `"problem-constructor"`; `line`: `75`; \}\]; `status`: `422`; `title`: `"Validation Error"`; \}, \{ `category`: `"ValidationError"`; `code`: `"rpc-codegen/invalid-contract"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#rpc-codegen-invalid-contract"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request or generated contract failed schema or semantic validation."`; `operatorAction`: `"Inspect schema diagnostics, generated contracts, and validation metadata."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Fix the invalid fields and retry with schema-conformant input."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/rpc-codegen/src/libs/generate.ts"`; `kind`: `"problem-constructor"`; `line`: `110`; \}\]; `status`: `422`; `title`: `"Validation Error"`; \}, \{ `category`: `"BadRequest"`; `code`: `"rpc-codegen/no-rest-controllers-found"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#rpc-codegen-no-rest-controllers-found"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The caller sent malformed input or unsupported request options."`; `operatorAction`: `"Inspect validation details and request logs; do not retry unchanged input."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Correct the request input and retry after validation passes."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/rpc-codegen/src/libs/loadRoutes.ts"`; `kind`: `"problem-constructor"`; `line`: `36`; \}\]; `status`: `400`; `title`: `"Bad Request"`; \}, \{ `category`: `"ValidationError"`; `code`: `"rpc-codegen/unsupported-form-schema"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#rpc-codegen-unsupported-form-schema"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request or generated contract failed schema or semantic validation."`; `operatorAction`: `"Inspect schema diagnostics, generated contracts, and validation metadata."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Fix the invalid fields and retry with schema-conformant input."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/rpc-codegen/src/libs/generate.ts"`; `kind`: `"problem-constructor"`; `line`: `116`; \}\]; `status`: `422`; `title`: `"Validation Error"`; \}, \{ `category`: `"Forbidden"`; `code`: `"saas-demo/demo-endpoint-disabled"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#saas-demo-demo-endpoint-disabled"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The authenticated caller is not allowed to perform the requested action."`; `operatorAction`: `"Review policy, role, tenant, entitlement, and impersonation context."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Request the required permission or choose an allowed action."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/create-croco-app/templates/saas/apps/api-server/src/problems.ts"`; `kind`: `"problem-class"`; `line`: `4`; \}\]; `status`: `403`; `title`: `"Forbidden"`; \}, \{ `category`: `"ValidationError"`; `code`: `"saas-demo/invalid-jobs-query"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#saas-demo-invalid-jobs-query"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request or generated contract failed schema or semantic validation."`; `operatorAction`: `"Inspect schema diagnostics, generated contracts, and validation metadata."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Fix the invalid fields and retry with schema-conformant input."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/create-croco-app/templates/saas/apps/api-server/src/problems.ts"`; `kind`: `"problem-class"`; `line`: `30`; \}\]; `status`: `422`; `title`: `"Validation Error"`; \}, \{ `category`: `"ValidationError"`; `code`: `"saas-demo/invalid-port"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#saas-demo-invalid-port"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request or generated contract failed schema or semantic validation."`; `operatorAction`: `"Inspect schema diagnostics, generated contracts, and validation metadata."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Fix the invalid fields and retry with schema-conformant input."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/create-croco-app/templates/saas/apps/api-server/src/problems.ts"`; `kind`: `"problem-class"`; `line`: `17`; \}\]; `status`: `422`; `title`: `"Validation Error"`; \}, \{ `category`: `"NotFound"`; `code`: `"saas-demo/job-not-found"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#saas-demo-job-not-found"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The requested resource or route-visible record does not exist."`; `operatorAction`: `"Confirm tenant scoping, data retention, and backing-store lookup behavior."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Verify the identifier and refresh the resource list before retrying."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/create-croco-app/templates/saas/apps/api-server/src/problems.ts"`; `kind`: `"problem-class"`; `line`: `39`; \}\]; `status`: `404`; `title`: `"Not Found"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"saas-demo/smoke-failed"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#saas-demo-smoke-failed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/create-croco-app/templates/saas/apps/api-server/src/problems.ts"`; `kind`: `"problem-class"`; `line`: `66`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"Conflict"`; `code`: `"saas-demo/tenant-already-exists"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#saas-demo-tenant-already-exists"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request conflicts with current state or an idempotency constraint."`; `operatorAction`: `"Inspect concurrent writes, idempotency keys, and uniqueness constraints."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Refresh state, resolve the conflict, and retry with the updated intent."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/create-croco-app/templates/saas/apps/api-server/src/problems.ts"`; `kind`: `"problem-class"`; `line`: `48`; \}\]; `status`: `409`; `title`: `"Conflict"`; \}, \{ `category`: `"NotFound"`; `code`: `"saas-demo/tenant-not-found"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#saas-demo-tenant-not-found"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The requested resource or route-visible record does not exist."`; `operatorAction`: `"Confirm tenant scoping, data retention, and backing-store lookup behavior."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Verify the identifier and refresh the resource list before retrying."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/create-croco-app/templates/saas/apps/api-server/src/problems.ts"`; `kind`: `"problem-class"`; `line`: `57`; \}\]; `status`: `404`; `title`: `"Not Found"`; \}, \{ `category`: `"NotImplemented"`; `code`: `"SEARCH_CAPABILITY_UNAVAILABLE"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#search-capability-unavailable"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The requested capability is not supported by this runtime or adapter."`; `operatorAction`: `"Check runtime capability declarations and provider maturity documentation."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Use a supported capability or choose an adapter/runtime that provides it."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/search-core/src/libs/problems/SearchProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `65`; \}\]; `status`: `501`; `title`: `"Not Implemented"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"SEARCH_DRIZZLE_INVALID_ROW"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#search-drizzle-invalid-row"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/search-drizzle/src/libs/problems/InvalidSearchRowProblem.ts"`; `kind`: `"problem-class"`; `line`: `7`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"Conflict"`; `code`: `"search-core/sync-identity-conflict"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#search-core-sync-identity-conflict"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The event envelope tenant or document identity conflicts with context.tenantId, payload.id, or payload.tenantId."`; `operatorAction`: `"Use extensions.source to identify the conflicting field and verify envelope-authoritative tenant and document identity propagation."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Correct the conflicting event or execution context, then replay the event."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/search-core/src/libs/problems/SearchProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `23`; \}\]; `status`: `409`; `title`: `"Conflict"`; \}, \{ `category`: `"NotFound"`; `code`: `"search-core/transform-not-found"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#search-core-transform-not-found"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The requested resource or route-visible record does not exist."`; `operatorAction`: `"Confirm tenant scoping, data retention, and backing-store lookup behavior."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Verify the identifier and refresh the resource list before retrying."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/search-core/src/libs/problems/SearchProblems.ts"`; `kind`: `"problem-class"`; `line`: `35`; \}\]; `status`: `404`; `title`: `"Not Found"`; \}, \{ `category`: `"NotFound"`; `code`: `"search-meilisearch/index-not-found"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#search-meilisearch-index-not-found"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The requested resource or route-visible record does not exist."`; `operatorAction`: `"Confirm tenant scoping, data retention, and backing-store lookup behavior."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Verify the identifier and refresh the resource list before retrying."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/search-meilisearch/src/libs/problems/MeilisearchProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `80`; \}\]; `status`: `404`; `title`: `"Not Found"`; \}, \{ `category`: `"ValidationError"`; `code`: `"search-meilisearch/invalid-request"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#search-meilisearch-invalid-request"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request or generated contract failed schema or semantic validation."`; `operatorAction`: `"Inspect schema diagnostics, generated contracts, and validation metadata."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Fix the invalid fields and retry with schema-conformant input."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/search-meilisearch/src/libs/problems/MeilisearchProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `60`; \}\]; `status`: `422`; `title`: `"Validation Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"search-meilisearch/missing-config"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#search-meilisearch-missing-config"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/search-meilisearch/src/libs/problems/MeilisearchProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `39`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"search-meilisearch/retryable-upstream"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#search-meilisearch-retryable-upstream"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/search-meilisearch/src/libs/problems/MeilisearchProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `100`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"search-meilisearch/tenant-token-not-configured"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#search-meilisearch-tenant-token-not-configured"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/search-meilisearch/src/libs/problems/MeilisearchProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `140`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"search-meilisearch/terminal-upstream"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#search-meilisearch-terminal-upstream"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/search-meilisearch/src/libs/problems/MeilisearchProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `120`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"Forbidden"`; `code`: `"SEAT_LIMIT_EXCEEDED"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#seat-limit-exceeded"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The authenticated caller is not allowed to perform the requested action."`; `operatorAction`: `"Review policy, role, tenant, entitlement, and impersonation context."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Request the required permission or choose an allowed action."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/membership-core/src/libs/problems/MembershipProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `78`; \}\]; `status`: `403`; `title`: `"Forbidden"`; \}, \{ `category`: `"Forbidden"`; `code`: `"SELF_IMPERSONATION_NOT_ALLOWED"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#self-impersonation-not-allowed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The authenticated caller is not allowed to perform the requested action."`; `operatorAction`: `"Review policy, role, tenant, entitlement, and impersonation context."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Request the required permission or choose an allowed action."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/impersonation-core/src/libs/problems/ImpersonationProblems.ts"`; `kind`: `"problem-class"`; `line`: `4`; \}\]; `status`: `403`; `title`: `"Forbidden"`; \}, \{ `category`: `"ValidationError"`; `code`: `"starter/invalid-environment"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#starter-invalid-environment"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request or generated contract failed schema or semantic validation."`; `operatorAction`: `"Inspect schema diagnostics, generated contracts, and validation metadata."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Fix the invalid fields and retry with schema-conformant input."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/create-croco-app/templates/spa-be-split/apps/api-server/src/problems.ts"`; `kind`: `"problem-class"`; `line`: `4`; \}\]; `status`: `422`; `title`: `"Validation Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"starter/unhandled-api-request"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#starter-unhandled-api-request"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/create-croco-app/templates/spa-be-split/apps/console-web/src/test/browser.ts"`; `kind`: `"problem-class"`; `line`: `8`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"NotFound"`; `code`: `"starter/user-not-found"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#starter-user-not-found"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The requested resource or route-visible record does not exist."`; `operatorAction`: `"Confirm tenant scoping, data retention, and backing-store lookup behavior."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Verify the identifier and refresh the resource list before retrying."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/create-croco-app/templates/spa-be-split/apps/api-server/src/problems.ts"`; `kind`: `"problem-class"`; `line`: `13`; \}\]; `status`: `404`; `title`: `"Not Found"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"STORAGE_DELETE_FAILED"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#storage-delete-failed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/storage-core/src/libs/problems/DeleteFailedProblem.ts"`; `kind`: `"problem-constructor"`; `line`: `8`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"NotFound"`; `code`: `"STORAGE_FILE_NOT_FOUND"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#storage-file-not-found"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The requested resource or route-visible record does not exist."`; `operatorAction`: `"Confirm tenant scoping, data retention, and backing-store lookup behavior."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Verify the identifier and refresh the resource list before retrying."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/storage-core/src/libs/problems/FileNotFoundProblem.ts"`; `kind`: `"problem-constructor"`; `line`: `11`; \}\]; `status`: `404`; `title`: `"Not Found"`; \}, \{ `category`: `"BadRequest"`; `code`: `"STORAGE_INVALID_KEY"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#storage-invalid-key"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The caller sent malformed input or unsupported request options."`; `operatorAction`: `"Inspect validation details and request logs; do not retry unchanged input."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Correct the request input and retry after validation passes."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/storage-core/src/libs/problems/InvalidKeyProblem.ts"`; `kind`: `"problem-class"`; `line`: `5`; \}\]; `status`: `400`; `title`: `"Bad Request"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"STORAGE_R2_EMPTY_BODY"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#storage-r2-empty-body"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/storage-r2/src/libs/problems/EmptyR2BodyProblem.ts"`; `kind`: `"problem-constructor"`; `line`: `9`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"STORAGE_R2_MISSING_CONFIG"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#storage-r2-missing-config"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/storage-r2/src/libs/problems/MissingR2ConfigProblem.ts"`; `kind`: `"problem-class"`; `line`: `8`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"STORAGE_R2_OBJECT_TOO_LARGE"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#storage-r2-object-too-large"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/storage-r2/src/libs/problems/R2ObjectTooLargeProblem.ts"`; `kind`: `"problem-class"`; `line`: `8`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"STORAGE_R2_READINESS_FAILED"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#storage-r2-readiness-failed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/storage-r2/src/libs/problems/R2ReadinessProblem.ts"`; `kind`: `"problem-class"`; `line`: `14`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"STORAGE_UPLOAD_FAILED"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#storage-upload-failed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/storage-core/src/libs/problems/UploadFailedProblem.ts"`; `kind`: `"problem-constructor"`; `line`: `11`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"storage-cloudflare/missing-config"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#storage-cloudflare-missing-config"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/storage-cloudflare/src/libs/CloudflareImagesDiagnosticsProvider.ts"`; `kind`: `"problem-constructor"`; `line`: `37`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"storage-cloudflare/retryable-upstream"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#storage-cloudflare-retryable-upstream"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/storage-cloudflare/src/libs/CloudflareImagesDiagnosticsProvider.ts"`; `kind`: `"problem-constructor"`; `line`: `70`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"storage-cloudflare/terminal-upstream"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#storage-cloudflare-terminal-upstream"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/storage-cloudflare/src/libs/CloudflareImagesDiagnosticsProvider.ts"`; `kind`: `"problem-constructor"`; `line`: `86`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"ValidationError"`; `code`: `"storage-cloudflare/validation-failed"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#storage-cloudflare-validation-failed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request or generated contract failed schema or semantic validation."`; `operatorAction`: `"Inspect schema diagnostics, generated contracts, and validation metadata."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Fix the invalid fields and retry with schema-conformant input."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/storage-cloudflare/src/libs/CloudflareImagesDiagnosticsProvider.ts"`; `kind`: `"problem-constructor"`; `line`: `57`; \}\]; `status`: `422`; `title`: `"Validation Error"`; \}, \{ `category`: `"BadRequest"`; `code`: `"storage-cloudinary/invalid-upload-intent-ttl"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#storage-cloudinary-invalid-upload-intent-ttl"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The caller sent malformed input or unsupported request options."`; `operatorAction`: `"Inspect validation details and request logs; do not retry unchanged input."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Correct the request input and retry after validation passes."`; \}; `sources`: readonly \[\{ `column`: `13`; `file`: `"packages/storage-cloudinary/src/libs/CloudinaryProvider.ts"`; `kind`: `"problem-factory"`; `line`: `331`; \}\]; `status`: `400`; `title`: `"Bad Request"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"storage-cloudinary/missing-config"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#storage-cloudinary-missing-config"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/storage-cloudinary/src/libs/CloudinaryDiagnosticsProvider.ts"`; `kind`: `"problem-constructor"`; `line`: `51`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"storage-cloudinary/retryable-upstream"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#storage-cloudinary-retryable-upstream"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/storage-cloudinary/src/libs/CloudinaryDiagnosticsProvider.ts"`; `kind`: `"problem-constructor"`; `line`: `84`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"storage-cloudinary/terminal-upstream"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#storage-cloudinary-terminal-upstream"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/storage-cloudinary/src/libs/CloudinaryDiagnosticsProvider.ts"`; `kind`: `"problem-constructor"`; `line`: `100`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"ValidationError"`; `code`: `"storage-cloudinary/validation-failed"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#storage-cloudinary-validation-failed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request or generated contract failed schema or semantic validation."`; `operatorAction`: `"Inspect schema diagnostics, generated contracts, and validation metadata."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Fix the invalid fields and retry with schema-conformant input."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/storage-cloudinary/src/libs/CloudinaryDiagnosticsProvider.ts"`; `kind`: `"problem-constructor"`; `line`: `71`; \}\]; `status`: `422`; `title`: `"Validation Error"`; \}, \{ `category`: `"BadRequest"`; `code`: `"storage/invalid-upload-intent-ttl"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#storage-invalid-upload-intent-ttl"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The caller sent malformed input or unsupported request options."`; `operatorAction`: `"Inspect validation details and request logs; do not retry unchanged input."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Correct the request input and retry after validation passes."`; \}; `sources`: readonly \[\{ `column`: `13`; `file`: `"packages/storage-cloudflare/src/libs/CloudflareImagesProvider.ts"`; `kind`: `"problem-factory"`; `line`: `305`; \}\]; `status`: `400`; `title`: `"Bad Request"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"STRATEGY_UNAVAILABLE"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#strategy-unavailable"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/search-core/src/libs/problems/SearchProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `44`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"STRUCTURED_OUTPUT_ERROR"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#structured-output-error"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/llm-core/src/libs/problems/LlmServiceProblem.ts"`; `kind`: `"problem-constructor"`; `line`: `52`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"tasks-core/duplicate-task-registration"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#tasks-core-duplicate-task-registration"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/tasks-core/src/libs/problems/TasksProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `13`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"tasks-core/execution-timeout"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#tasks-core-execution-timeout"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/tasks-core/src/libs/problems/TasksProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `46`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"NotFound"`; `code`: `"tasks-core/task-not-found"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#tasks-core-task-not-found"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The requested resource or route-visible record does not exist."`; `operatorAction`: `"Confirm tenant scoping, data retention, and backing-store lookup behavior."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Verify the identifier and refresh the resource list before retrying."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/tasks-core/src/libs/problems/TasksProblems.ts"`; `kind`: `"problem-class"`; `line`: `4`; \}\]; `status`: `404`; `title`: `"Not Found"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"tasks-core/task-runner-di-failure"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#tasks-core-task-runner-di-failure"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/tasks-core/src/libs/problems/TasksProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `29`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"BadRequest"`; `code`: `"tasks-qstash/invalid-publish-request"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#tasks-qstash-invalid-publish-request"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The caller sent malformed input or unsupported request options."`; `operatorAction`: `"Inspect validation details and request logs; do not retry unchanged input."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Correct the request input and retry after validation passes."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/tasks-qstash/src/libs/problems/QStashTaskProblems.ts"`; `kind`: `"problem-class"`; `line`: `18`; \}\]; `status`: `400`; `title`: `"Bad Request"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"tasks-qstash/missing-config"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#tasks-qstash-missing-config"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/tasks-qstash/src/libs/problems/QStashTaskProblems.ts"`; `kind`: `"problem-class"`; `line`: `4`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"ValidationError"`; `code`: `"TELEMETRY_AUTO_INSTRUMENTATION_INVALID_CONFIG"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#telemetry-auto-instrumentation-invalid-config"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request or generated contract failed schema or semantic validation."`; `operatorAction`: `"Inspect schema diagnostics, generated contracts, and validation metadata."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Fix the invalid fields and retry with schema-conformant input."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/telemetry-sdk-node/src/libs/problems/TelemetryAutoInstrumentationProblem.ts"`; `kind`: `"problem-class"`; `line`: `7`; \}\]; `status`: `422`; `title`: `"Validation Error"`; \}, \{ `category`: `"NotImplemented"`; `code`: `"TELEMETRY_FORCE_FLUSH_UNSUPPORTED"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#telemetry-force-flush-unsupported"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The requested capability is not supported by this runtime or adapter."`; `operatorAction`: `"Check runtime capability declarations and provider maturity documentation."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Use a supported capability or choose an adapter/runtime that provides it."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/telemetry-sdk-node/src/libs/problems/TelemetryProblems.ts"`; `kind`: `"problem-class"`; `line`: `62`; \}\]; `status`: `501`; `title`: `"Not Implemented"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"TELEMETRY_RUNTIME_ERROR"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#telemetry-runtime-error"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/telemetry-sdk-node/src/libs/problems/TelemetryProblems.ts"`; `kind`: `"problem-class"`; `line`: `75`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"BadRequest"`; `code`: `"TELEMETRY_SAMPLER_INVALID_CONFIG"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#telemetry-sampler-invalid-config"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The caller sent malformed input or unsupported request options."`; `operatorAction`: `"Inspect validation details and request logs; do not retry unchanged input."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Correct the request input and retry after validation passes."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/telemetry-sdk-node/src/libs/problems/TelemetryProblems.ts"`; `kind`: `"problem-class"`; `line`: `8`; \}\]; `status`: `400`; `title`: `"Bad Request"`; \}, \{ `category`: `"BadRequest"`; `code`: `"TELEMETRY_SIGNAL_UNSUPPORTED"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#telemetry-signal-unsupported"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The caller sent malformed input or unsupported request options."`; `operatorAction`: `"Inspect validation details and request logs; do not retry unchanged input."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Correct the request input and retry after validation passes."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/telemetry-sdk-node/src/libs/problems/TelemetryProblems.ts"`; `kind`: `"problem-class"`; `line`: `36`; \}\]; `status`: `400`; `title`: `"Bad Request"`; \}, \{ `category`: `"Forbidden"`; `code`: `"tenant-core/admin-bypass-reason-required"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#tenant-core-admin-bypass-reason-required"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The authenticated caller is not allowed to perform the requested action."`; `operatorAction`: `"Review policy, role, tenant, entitlement, and impersonation context."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Request the required permission or choose an allowed action."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/tenant-core/src/libs/problems/TenantIsolationProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `60`; \}\]; `status`: `403`; `title`: `"Forbidden"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"tenant-core/cross-tenant-leak"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#tenant-core-cross-tenant-leak"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/tenant-core/src/libs/problems/TenantIsolationProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `79`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"BadRequest"`; `code`: `"tenant-core/default-tenant-fallback"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#tenant-core-default-tenant-fallback"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The caller sent malformed input or unsupported request options."`; `operatorAction`: `"Inspect validation details and request logs; do not retry unchanged input."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Correct the request input and retry after validation passes."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/tenant-core/src/libs/problems/TenantIsolationProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `48`; \}\]; `status`: `400`; `title`: `"Bad Request"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"tenant-core/duplicate-tenant-manager-registration"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#tenant-core-duplicate-tenant-manager-registration"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/tenant-core/src/libs/problems/DuplicateTenantManagerRegistrationProblem.ts"`; `kind`: `"problem-class"`; `line`: `4`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"Unauthorized"`; `code`: `"tenant-core/isolation-context-missing"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#tenant-core-isolation-context-missing"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request did not include valid authentication credentials."`; `operatorAction`: `"Check authentication configuration, token issuer, and clock skew."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Sign in again or provide a valid credential."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/tenant-core/src/libs/problems/TenantIsolationProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `39`; \}\]; `status`: `401`; `title`: `"Unauthorized"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"tenant-core/tenant-manager-not-registered"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#tenant-core-tenant-manager-not-registered"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/tenant-core/src/libs/problems/TenantManagerNotRegisteredProblem.ts"`; `kind`: `"problem-class"`; `line`: `4`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"Forbidden"`; `code`: `"tenant-core/unsafe-query"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#tenant-core-unsafe-query"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The authenticated caller is not allowed to perform the requested action."`; `operatorAction`: `"Review policy, role, tenant, entitlement, and impersonation context."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Request the required permission or choose an allowed action."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/tenant-core/src/libs/problems/TenantIsolationProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `69`; \}\]; `status`: `403`; `title`: `"Forbidden"`; \}, \{ `category`: `"NotFound"`; `code`: `"tenant/not-found"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#tenant-not-found"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The requested resource or route-visible record does not exist."`; `operatorAction`: `"Confirm tenant scoping, data retention, and backing-store lookup behavior."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Verify the identifier and refresh the resource list before retrying."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/tenant-core/src/libs/problems/TenantNotFoundProblem.ts"`; `kind`: `"problem-class"`; `line`: `7`; \}\]; `status`: `404`; `title`: `"Not Found"`; \}, \{ `category`: `"Unauthorized"`; `code`: `"tenant/required"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#tenant-required"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request did not include valid authentication credentials."`; `operatorAction`: `"Check authentication configuration, token issuer, and clock skew."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Sign in again or provide a valid credential."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/tenant-core/src/libs/problems/TenantRequiredProblem.ts"`; `kind`: `"problem-class"`; `line`: `7`; \}\]; `status`: `401`; `title`: `"Unauthorized"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"testing-resources/cleanup-failed"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#testing-resources-cleanup-failed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `12`; `file`: `"packages/testing-resources/src/libs/problems.ts"`; `kind`: `"problem-metadata"`; `line`: `17`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"testing-resources/health-check-failed"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#testing-resources-health-check-failed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `19`; `file`: `"packages/testing-resources/src/libs/problems.ts"`; `kind`: `"problem-metadata"`; `line`: `13`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"testing-resources/invalid-configuration"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#testing-resources-invalid-configuration"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/testing-resources/src/libs/problems.ts"`; `kind`: `"problem-constructor"`; `line`: `25`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"testing-resources/migration-failed"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#testing-resources-migration-failed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `14`; `file`: `"packages/testing-resources/src/libs/problems.ts"`; `kind`: `"problem-metadata"`; `line`: `9`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"testing-resources/startup-failed"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#testing-resources-startup-failed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `12`; `file`: `"packages/testing-resources/src/libs/problems.ts"`; `kind`: `"problem-metadata"`; `line`: `5`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"testing/after-commit-hooks-failed"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#testing-after-commit-hooks-failed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/testing/src/libs/testing.ts"`; `kind`: `"problem-constructor"`; `line`: `184`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"testing/telemetry-provider-already-installed"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#testing-telemetry-provider-already-installed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/testing/src/libs/telemetry-testing.ts"`; `kind`: `"problem-constructor"`; `line`: `54`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"testing/test-kernel-disposal-failed"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#testing-test-kernel-disposal-failed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/testing/src/libs/TestKernel.ts"`; `kind`: `"problem-constructor"`; `line`: `144`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"testing/test-kernel-disposed"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#testing-test-kernel-disposed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/testing/src/libs/TestKernel.ts"`; `kind`: `"problem-constructor"`; `line`: `172`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"testing/test-kernel-resource-fidelity"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#testing-test-kernel-resource-fidelity"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/testing/src/libs/TestKernel.ts"`; `kind`: `"problem-constructor"`; `line`: `182`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"testing/test-kernel-resource-not-found"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#testing-test-kernel-resource-not-found"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/testing/src/libs/TestKernel.ts"`; `kind`: `"problem-constructor"`; `line`: `198`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"testing/test-kernel-resource-registration"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#testing-test-kernel-resource-registration"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/testing/src/libs/TestKernel.ts"`; `kind`: `"problem-constructor"`; `line`: `211`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"testing/test-kernel-validation-policy"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#testing-test-kernel-validation-policy"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/testing/src/libs/TestKernel.ts"`; `kind`: `"problem-constructor"`; `line`: `131`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"testing/transaction-context-not-active"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#testing-transaction-context-not-active"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/testing/src/libs/testing.ts"`; `kind`: `"problem-constructor"`; `line`: `171`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"BadRequest"`; `code`: `"TOKEN_LIMIT_EXCEEDED"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#token-limit-exceeded"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The caller sent malformed input or unsupported request options."`; `operatorAction`: `"Inspect validation details and request logs; do not retry unchanged input."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Correct the request input and retry after validation passes."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/llm-core/src/libs/problems/LlmProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `21`; \}\]; `status`: `400`; `title`: `"Bad Request"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"TOOL_EXECUTION_ERROR"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#tool-execution-error"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/llm-core/src/libs/problems/LlmServiceProblem.ts"`; `kind`: `"problem-constructor"`; `line`: `61`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"BadRequest"`; `code`: `"transports-graphql/request-body-aborted"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#transports-graphql-request-body-aborted"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The caller sent malformed input or unsupported request options."`; `operatorAction`: `"Inspect validation details and request logs; do not retry unchanged input."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Correct the request input and retry after validation passes."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/transports-graphql/src/libs/problems/GraphQLTransportProblems.ts"`; `kind`: `"problem-class"`; `line`: `47`; \}\]; `status`: `400`; `title`: `"Bad Request"`; \}, \{ `category`: `"PayloadTooLarge"`; `code`: `"transports-graphql/request-body-too-large"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#transports-graphql-request-body-too-large"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request body exceeded the configured byte limit."`; `operatorAction`: `"Confirm route body limits and upstream proxy limits match the intended upload policy."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Reduce the request body and retry."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/transports-graphql/src/libs/problems/GraphQLTransportProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `33`; \}\]; `status`: `413`; `title`: `"Payload Too Large"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"transports-graphql/resolvers-not-configured"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#transports-graphql-resolvers-not-configured"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/transports-graphql/src/libs/problems/GraphQLTransportProblems.ts"`; `kind`: `"problem-class"`; `line`: `4`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"transports-graphql/schema-not-configured"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#transports-graphql-schema-not-configured"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/transports-graphql/src/libs/problems/GraphQLTransportProblems.ts"`; `kind`: `"problem-class"`; `line`: `16`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"transports-graphql/server-not-initialized"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#transports-graphql-server-not-initialized"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/transports-graphql/src/libs/problems/GraphQLTransportProblems.ts"`; `kind`: `"problem-class"`; `line`: `24`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"transports-http/body-limit-invalid-configuration"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#transports-http-body-limit-invalid-configuration"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The HTTP body-limit middleware was configured with an invalid byte boundary."`; `operatorAction`: `"Set the body-limit value to a finite, nonnegative safe integer and restart the service."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Ask the operator to correct the service configuration before retrying."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/transports-http/src/libs/problems/HttpRequestBodyProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `15`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"transports-http/di-bootstrap-validation"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#transports-http-di-bootstrap-validation"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `11`; `file`: `"packages/transports-http/src/libs/CrocoApp.ts"`; `kind`: `"problem-factory"`; `line`: `315`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"transports-http/duplicate-health-check"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#transports-http-duplicate-health-check"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `10`; `file`: `"packages/transports-http/src/libs/HealthCheckRegistry.ts"`; `kind`: `"problem-factory"`; `line`: `71`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"transports-http/duplicate-route-definition"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#transports-http-duplicate-route-definition"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Two REST controller methods compile to the same HTTP method and runtime path."`; `operatorAction`: `"Inspect the duplicate-route diagnostic for the existing and conflicting controller methods and their route decorator source locations, then rename one route path or change one HTTP method."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Use an application build where every route decorator has a unique HTTP method and path combination."`; \}; `sources`: readonly \[\{ `column`: `15`; `file`: `"packages/transports-http/src/libs/RouteCompiler.ts"`; `kind`: `"problem-factory"`; `line`: `115`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"transports-http/graceful-shutdown-configuration"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#transports-http-graceful-shutdown-configuration"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Graceful shutdown was configured with a non-finite total or event-bus drain timeout."`; `operatorAction`: `"Set timeoutMs and eventBusDrainTimeoutMs to finite numbers, then reconstruct the middleware or controller before retrying shutdown."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Ask the operator to correct the graceful shutdown timeout configuration before reconstructing the HTTP application."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/transports-http/src/libs/problems/GracefulShutdownProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `20`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"transports-http/graceful-shutdown-timeout"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#transports-http-graceful-shutdown-timeout"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Graceful shutdown did not finish a phase before that phase's configured deadline elapsed."`; `operatorAction`: `"Inspect the reported phase, timeoutMs, and elapsedMs extensions, then investigate slow request handlers, event-bus draining, or shutdown hooks."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Wait for the stalled shutdown phase to be investigated before retrying; active requests or cleanup work may still be settling."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/transports-http/src/libs/problems/GracefulShutdownProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `47`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"transports-http/middleware-next-called-multiple-times"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#transports-http-middleware-next-called-multiple-times"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Compatibility metadata for the previous HTTP middleware multiple-next code. New runtime failures use CROCO_HTTP_MIDDLEWARE_002 and preserve this value as extensions.legacyCode."`; `operatorAction`: `"Update dashboards, alerts, and runbooks from transports-http/middleware-next-called-multiple-times to CROCO_HTTP_MIDDLEWARE_002 before removing legacy-code matching."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Migrate Problem.code matchers to CROCO_HTTP_MIDDLEWARE_002; use extensions.legacyCode only while rolling out compatibility changes."`; \}; `sources`: readonly \[\{ `column`: `49`; `file`: `"packages/transports-http/src/libs/CrocoRouteRegistrar.ts"`; `kind`: `"problem-metadata"`; `line`: `39`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"transports-http/pipe-resolution-failed"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#transports-http-pipe-resolution-failed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `13`; `file`: `"packages/transports-http/src/libs/ParamResolver.ts"`; `kind`: `"problem-factory"`; `line`: `159`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"transports-http/provider-resolution-failed"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#transports-http-provider-resolution-failed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `11`; `file`: `"packages/transports-http/src/libs/RouteCompiler.ts"`; `kind`: `"problem-factory"`; `line`: `67`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"BadRequest"`; `code`: `"transports-http/request-body-read-failed"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#transports-http-request-body-read-failed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The caller sent malformed input or unsupported request options."`; `operatorAction`: `"Inspect validation details and request logs; do not retry unchanged input."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Correct the request input and retry after validation passes."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/transports-http/src/libs/problems/HttpRequestBodyProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `67`; \}\]; `status`: `400`; `title`: `"Bad Request"`; \}, \{ `category`: `"PayloadTooLarge"`; `code`: `"transports-http/request-body-too-large"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#transports-http-request-body-too-large"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request body exceeded the configured byte limit."`; `operatorAction`: `"Confirm route body limits and upstream proxy limits match the intended upload policy."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Reduce the request body and retry."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/transports-http/src/libs/problems/HttpRequestBodyProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `31`; \}\]; `status`: `413`; `statusPolicy`: \{ `configuration`: `"bodyLimitMiddleware.statusCode"`; `defaultStatus`: `413`; `kind`: `"runtime-configurable"`; \}; `title`: `"Payload Too Large"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"transports-http/request-body-unavailable"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#transports-http-request-body-unavailable"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/transports-http/src/libs/problems/HttpRequestBodyProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `52`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"transports-http/route-method-not-function"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#transports-http-route-method-not-function"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `17`; `file`: `"packages/transports-http/src/libs/RouteCompiler.ts"`; `kind`: `"problem-factory"`; `line`: `175`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"Conflict"`; `code`: `"transports-http/runtime-capability-invalid"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#transports-http-runtime-capability-invalid"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request conflicts with current state or an idempotency constraint."`; `operatorAction`: `"Inspect concurrent writes, idempotency keys, and uniqueness constraints."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Refresh state, resolve the conflict, and retry with the updated intent."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/transports-http/src/libs/runtimeContext.ts"`; `kind`: `"problem-class"`; `line`: `88`; \}\]; `status`: `409`; `title`: `"Conflict"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"transports-http/security-middleware-validation"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#transports-http-security-middleware-validation"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Compatibility metadata for the previous HTTP security middleware validation code. New runtime failures use CROCO_HTTP_SECURITY_001 and preserve this value as extensions.legacyCode."`; `operatorAction`: `"Update dashboards, alerts, and runbooks from transports-http/security-middleware-validation to CROCO_HTTP_SECURITY_001 before removing legacy-code matching."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Migrate Problem.code matchers to CROCO_HTTP_SECURITY_001; use extensions.legacyCode only while rolling out compatibility changes."`; \}; `sources`: readonly \[\{ `column`: `55`; `file`: `"packages/transports-http/src/libs/CrocoApp.ts"`; `kind`: `"problem-metadata"`; `line`: `88`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"transports-http/unsupported-route-method"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#transports-http-unsupported-route-method"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `15`; `file`: `"packages/transports-http/src/libs/CrocoRouteRegistrar.ts"`; `kind`: `"problem-factory"`; `line`: `245`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"triggers-core/duplicate-trigger-metadata"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#triggers-core-duplicate-trigger-metadata"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `17`; `file`: `"packages/triggers-core/src/libs/TriggerRegistry.ts"`; `kind`: `"problem-factory"`; `line`: `69`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"triggers-core/duplicate-trigger-metadata-entry"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#triggers-core-duplicate-trigger-metadata-entry"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `17`; `file`: `"packages/triggers-core/src/libs/TriggerRegistry.ts"`; `kind`: `"problem-factory"`; `line`: `121`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"triggers-qstash/duplicate-schedule-id"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#triggers-qstash-duplicate-schedule-id"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `15`; `file`: `"packages/triggers-qstash/src/libs/QStashScheduler.ts"`; `kind`: `"problem-factory"`; `line`: `253`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"triggers-qstash/execution-failed"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#triggers-qstash-execution-failed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `13`; `file`: `"packages/triggers-qstash/src/libs/QStashTriggerHandler.ts"`; `kind`: `"problem-metadata"`; `line`: `264`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"triggers-qstash/service-resolution-failed"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#triggers-qstash-service-resolution-failed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `15`; `file`: `"packages/triggers-qstash/src/libs/QStashTriggerHandler.ts"`; `kind`: `"problem-metadata"`; `line`: `254`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"tx-core/after-commit-hooks-failed"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#tx-core-after-commit-hooks-failed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/tx-core/src/libs/problems/TransactionProblems.ts"`; `kind`: `"problem-class"`; `line`: `103`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"tx-core/after-commit-outcome-required"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#tx-core-after-commit-outcome-required"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/tx-core/src/libs/problems/TransactionProblems.ts"`; `kind`: `"problem-class"`; `line`: `35`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"tx-core/after-commit-registration-closed"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#tx-core-after-commit-registration-closed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/tx-core/src/libs/problems/TransactionProblems.ts"`; `kind`: `"problem-class"`; `line`: `50`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"tx-core/decorator-misuse"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#tx-core-decorator-misuse"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/tx-core/src/libs/problems/TransactionProblems.ts"`; `kind`: `"problem-class"`; `line`: `13`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"tx-core/detached-transaction-operation"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#tx-core-detached-transaction-operation"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/tx-core/src/libs/problems/TransactionProblems.ts"`; `kind`: `"problem-class"`; `line`: `61`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"tx-core/duplicate-tx-manager-registration"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#tx-core-duplicate-tx-manager-registration"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/tx-core/src/libs/errors.ts"`; `kind`: `"problem-class"`; `line`: `7`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"ValidationError"`; `code`: `"tx-core/invalid-transaction-timeout"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#tx-core-invalid-transaction-timeout"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request or generated contract failed schema or semantic validation."`; `operatorAction`: `"Inspect schema diagnostics, generated contracts, and validation metadata."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Fix the invalid fields and retry with schema-conformant input."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/tx-core/src/libs/problems/TransactionProblems.ts"`; `kind`: `"problem-class"`; `line`: `87`; \}\]; `status`: `422`; `title`: `"Validation Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"tx-core/manager-not-registered"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#tx-core-manager-not-registered"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/tx-core/src/libs/errors.ts"`; `kind`: `"problem-class"`; `line`: `23`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"tx-core/missing-transaction-context"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#tx-core-missing-transaction-context"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/tx-core/src/libs/problems/TransactionProblems.ts"`; `kind`: `"problem-class"`; `line`: `24`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"tx-core/outcome-requires-root"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#tx-core-outcome-requires-root"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/tx-core/src/libs/problems/TransactionProblems.ts"`; `kind`: `"problem-class"`; `line`: `76`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"BusinessRuleViolation"`; `code`: `"tx-core/propagation-error"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#tx-core-propagation-error"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request is syntactically valid but violates a domain rule."`; `operatorAction`: `"Review domain policy, entitlement, quota, and lifecycle rule evidence."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Change the workflow state or request values so the business rule is satisfied."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/tx-core/src/libs/errors.ts"`; `kind`: `"problem-class"`; `line`: `34`; \}\]; `status`: `422`; `title`: `"Business Rule Violation"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"tx-core/transaction-outcome-unknown"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#tx-core-transaction-outcome-unknown"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/tx-core/src/libs/problems/TransactionProblems.ts"`; `kind`: `"problem-class"`; `line`: `165`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"tx-core/transaction-rollback-confirmed"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#tx-core-transaction-rollback-confirmed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/tx-core/src/libs/problems/TransactionProblems.ts"`; `kind`: `"problem-class"`; `line`: `147`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"tx-core/transaction-timeout"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#tx-core-transaction-timeout"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/tx-core/src/libs/problems/TransactionProblems.ts"`; `kind`: `"problem-class"`; `line`: `130`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"tx-drizzle/rls-configuration-invalid"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#tx-drizzle-rls-configuration-invalid"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"A PostgreSQL RLS helper received malformed static identifier or setting-key configuration."`; `operatorAction`: `"Use the reported field name and the @croco/tx-drizzle RLS contract to correct the configuration, then restart the service."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Ask the operator to correct the RLS configuration before retrying."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/tx-drizzle/src/libs/problems/TxDrizzleProblems.ts"`; `kind`: `"problem-class"`; `line`: `7`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"tx-drizzle/rls-debug-logging-failed"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#tx-drizzle-rls-debug-logging-failed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Requested RLS debug logging could not initialize or write its diagnostic event."`; `operatorAction`: `"Provide an RlsLogger or register the framework Logger, then verify its info() output path before retrying the transaction."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Ask the operator to restore the configured logger before retrying."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/tx-drizzle/src/libs/problems/TxDrizzleProblems.ts"`; `kind`: `"problem-class"`; `line`: `57`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"tx-drizzle/rls-execute-unsupported"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#tx-drizzle-rls-execute-unsupported"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/tx-drizzle/src/libs/problems/TxDrizzleProblems.ts"`; `kind`: `"problem-class"`; `line`: `29`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"tx-drizzle/savepoint-unsupported"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#tx-drizzle-savepoint-unsupported"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/tx-drizzle/src/libs/problems/TxDrizzleProblems.ts"`; `kind`: `"problem-class"`; `line`: `76`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"tx-drizzle/tenant-context-required"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#tx-drizzle-tenant-context-required"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/tx-drizzle/src/libs/problems/TxDrizzleProblems.ts"`; `kind`: `"problem-class"`; `line`: `21`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"Unauthorized"`; `code`: `"UNAUTHORIZED"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#unauthorized"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request did not include valid authentication credentials."`; `operatorAction`: `"Check authentication configuration, token issuer, and clock skew."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Sign in again or provide a valid credential."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/auth-core/src/libs/problems/AuthProblems.ts"`; `kind`: `"problem-class"`; `line`: `5`; \}\]; `status`: `401`; `title`: `"Unauthorized"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"WEBHOOK_PROCESSING_FAILED"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#webhook-processing-failed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/billing-polar/src/libs/problems/WebhookProcessingProblem.ts"`; `kind`: `"problem-class"`; `line`: `4`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"BadRequest"`; `code`: `"WEBHOOK_VALIDATION_FAILED"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#webhook-validation-failed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The caller sent malformed input or unsupported request options."`; `operatorAction`: `"Inspect validation details and request logs; do not retry unchanged input."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Correct the request input and retry after validation passes."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/billing-polar/src/libs/problems/WebhookValidationProblem.ts"`; `kind`: `"problem-class"`; `line`: `4`; \}\]; `status`: `400`; `title`: `"Bad Request"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"webhooks-core/configuration"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#webhooks-core-configuration"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `11`; `file`: `"packages/webhooks-core/src/libs/problems/WebhookProblems.ts"`; `kind`: `"problem-metadata"`; `line`: `38`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"webhooks-core/dispatch-failed"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#webhooks-core-dispatch-failed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `11`; `file`: `"packages/webhooks-core/src/libs/problems/WebhookProblems.ts"`; `kind`: `"problem-metadata"`; `line`: `117`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"Conflict"`; `code`: `"webhooks-core/duplicate-event"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#webhooks-core-duplicate-event"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request conflicts with current state or an idempotency constraint."`; `operatorAction`: `"Inspect concurrent writes, idempotency keys, and uniqueness constraints."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Refresh state, resolve the conflict, and retry with the updated intent."`; \}; `sources`: readonly \[\{ `column`: `11`; `file`: `"packages/webhooks-core/src/libs/problems/WebhookProblems.ts"`; `kind`: `"problem-metadata"`; `line`: `139`; \}\]; `status`: `409`; `title`: `"Conflict"`; \}, \{ `category`: `"BadRequest"`; `code`: `"webhooks-core/invalid-envelope"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#webhooks-core-invalid-envelope"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The caller sent malformed input or unsupported request options."`; `operatorAction`: `"Inspect validation details and request logs; do not retry unchanged input."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Correct the request input and retry after validation passes."`; \}; `sources`: readonly \[\{ `column`: `11`; `file`: `"packages/webhooks-core/src/libs/problems/WebhookProblems.ts"`; `kind`: `"problem-metadata"`; `line`: `74`; \}\]; `status`: `400`; `title`: `"Bad Request"`; \}, \{ `category`: `"BadRequest"`; `code`: `"webhooks-core/invalid-fixture"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#webhooks-core-invalid-fixture"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The caller sent malformed input or unsupported request options."`; `operatorAction`: `"Inspect validation details and request logs; do not retry unchanged input."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Correct the request input and retry after validation passes."`; \}; `sources`: readonly \[\{ `column`: `11`; `file`: `"packages/webhooks-core/src/libs/problems/WebhookProblems.ts"`; `kind`: `"problem-metadata"`; `line`: `178`; \}\]; `status`: `400`; `title`: `"Bad Request"`; \}, \{ `category`: `"BadRequest"`; `code`: `"webhooks-core/invalid-signature"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#webhooks-core-invalid-signature"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The caller sent malformed input or unsupported request options."`; `operatorAction`: `"Inspect validation details and request logs; do not retry unchanged input."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Correct the request input and retry after validation passes."`; \}; `sources`: readonly \[\{ `column`: `11`; `file`: `"packages/webhooks-core/src/libs/problems/WebhookProblems.ts"`; `kind`: `"problem-metadata"`; `line`: `54`; \}\]; `status`: `400`; `title`: `"Bad Request"`; \}, \{ `category`: `"Conflict"`; `code`: `"webhooks-core/outbound-acceptance-unknown"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#webhooks-core-outbound-acceptance-unknown"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request conflicts with current state or an idempotency constraint."`; `operatorAction`: `"Inspect concurrent writes, idempotency keys, and uniqueness constraints."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Refresh state, resolve the conflict, and retry with the updated intent."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/webhooks-core/src/libs/outbound/OutboundWebhookProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `97`; \}\]; `status`: `409`; `title`: `"Conflict"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"webhooks-core/outbound-configuration"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#webhooks-core-outbound-configuration"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/webhooks-core/src/libs/outbound/OutboundWebhookProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `119`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"NotFound"`; `code`: `"webhooks-core/outbound-endpoint-not-found"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#webhooks-core-outbound-endpoint-not-found"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The requested resource or route-visible record does not exist."`; `operatorAction`: `"Confirm tenant scoping, data retention, and backing-store lookup behavior."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Verify the identifier and refresh the resource list before retrying."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/webhooks-core/src/libs/outbound/OutboundWebhookProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `53`; \}\]; `status`: `404`; `title`: `"Not Found"`; \}, \{ `category`: `"ValidationError"`; `code`: `"webhooks-core/outbound-invalid-event"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#webhooks-core-outbound-invalid-event"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request or generated contract failed schema or semantic validation."`; `operatorAction`: `"Inspect schema diagnostics, generated contracts, and validation metadata."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Fix the invalid fields and retry with schema-conformant input."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/webhooks-core/src/libs/outbound/OutboundWebhookProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `31`; \}\]; `status`: `422`; `title`: `"Validation Error"`; \}, \{ `category`: `"ValidationError"`; `code`: `"webhooks-core/outbound-invalid-secret-version"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#webhooks-core-outbound-invalid-secret-version"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request or generated contract failed schema or semantic validation."`; `operatorAction`: `"Inspect schema diagnostics, generated contracts, and validation metadata."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Fix the invalid fields and retry with schema-conformant input."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/webhooks-core/src/libs/outbound/OutboundWebhookProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `64`; \}\]; `status`: `422`; `title`: `"Validation Error"`; \}, \{ `category`: `"ValidationError"`; `code`: `"webhooks-core/outbound-invalid-url"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#webhooks-core-outbound-invalid-url"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request or generated contract failed schema or semantic validation."`; `operatorAction`: `"Inspect schema diagnostics, generated contracts, and validation metadata."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Fix the invalid fields and retry with schema-conformant input."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/webhooks-core/src/libs/outbound/OutboundWebhookProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `42`; \}\]; `status`: `422`; `title`: `"Validation Error"`; \}, \{ `category`: `"BusinessRuleViolation"`; `code`: `"webhooks-core/outbound-permanent-failure"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#webhooks-core-outbound-permanent-failure"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request is syntactically valid but violates a domain rule."`; `operatorAction`: `"Review domain policy, entitlement, quota, and lifecycle rule evidence."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Change the workflow state or request values so the business rule is satisfied."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/webhooks-core/src/libs/outbound/OutboundWebhookProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `86`; \}\]; `status`: `422`; `title`: `"Business Rule Violation"`; \}, \{ `category`: `"Conflict"`; `code`: `"webhooks-core/outbound-replay-not-allowed"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#webhooks-core-outbound-replay-not-allowed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request conflicts with current state or an idempotency constraint."`; `operatorAction`: `"Inspect concurrent writes, idempotency keys, and uniqueness constraints."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Refresh state, resolve the conflict, and retry with the updated intent."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/webhooks-core/src/libs/outbound/OutboundWebhookProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `108`; \}\]; `status`: `409`; `title`: `"Conflict"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"webhooks-core/outbound-retryable-failure"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#webhooks-core-outbound-retryable-failure"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/webhooks-core/src/libs/outbound/OutboundWebhookProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `75`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"webhooks-core/reporter-failed"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#webhooks-core-reporter-failed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `11`; `file`: `"packages/webhooks-core/src/libs/problems/WebhookProblems.ts"`; `kind`: `"problem-metadata"`; `line`: `162`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"BadRequest"`; `code`: `"webhooks-core/unknown-event"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#webhooks-core-unknown-event"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The caller sent malformed input or unsupported request options."`; `operatorAction`: `"Inspect validation details and request logs; do not retry unchanged input."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Correct the request input and retry after validation passes."`; \}; `sources`: readonly \[\{ `column`: `11`; `file`: `"packages/webhooks-core/src/libs/problems/WebhookProblems.ts"`; `kind`: `"problem-metadata"`; `line`: `94`; \}\]; `status`: `400`; `title`: `"Bad Request"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"workflow-core/duplicate-workflow-registration"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#workflow-core-duplicate-workflow-registration"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/workflow-core/src/libs/problems/WorkflowProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `15`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"workflow-core/replay-unsupported"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#workflow-core-replay-unsupported"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/workflow-core/src/libs/problems/WorkflowProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `47`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"workflow-core/saga-definition-invalid"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#workflow-core-saga-definition-invalid"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/workflow-core/src/libs/problems/WorkflowProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `62`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"workflow-core/saga-execution-failed"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#workflow-core-saga-execution-failed"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/workflow-core/src/libs/problems/WorkflowProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `127`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"NotFound"`; `code`: `"workflow-core/saga-execution-not-found"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#workflow-core-saga-execution-not-found"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The requested resource or route-visible record does not exist."`; `operatorAction`: `"Confirm tenant scoping, data retention, and backing-store lookup behavior."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Verify the identifier and refresh the resource list before retrying."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/workflow-core/src/libs/problems/WorkflowProblems.ts"`; `kind`: `"problem-class"`; `line`: `77`; \}\]; `status`: `404`; `title`: `"Not Found"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"workflow-core/saga-replay-invalid"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#workflow-core-saga-replay-invalid"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/workflow-core/src/libs/problems/WorkflowProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `103`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"Conflict"`; `code`: `"workflow-core/saga-store-conflict"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#workflow-core-saga-store-conflict"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The request conflicts with current state or an idempotency constraint."`; `operatorAction`: `"Inspect concurrent writes, idempotency keys, and uniqueness constraints."`; `redactionPolicy`: `"safe-message"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.warning"`; `severity`: `"warning"`; \}; `userAction`: `"Refresh state, resolve the conflict, and retry with the updated intent."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/workflow-core/src/libs/problems/WorkflowProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `92`; \}\]; `status`: `409`; `title`: `"Conflict"`; \}, \{ `category`: `"InternalServerError"`; `code`: `"workflow-core/workflow-definition-invalid"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#workflow-core-workflow-definition-invalid"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"Croco or an upstream dependency failed after accepting the request."`; `operatorAction`: `"Use traces, logs, and upstream diagnostics to isolate the failing boundary."`; `redactionPolicy`: `"operator-only"`; `retryability`: `"conditional"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.error"`; `severity`: `"error"`; \}; `userAction`: `"Retry later only when the operation is idempotent or the caller owns retry safety."`; \}; `sources`: readonly \[\{ `column`: `5`; `file`: `"packages/workflow-core/src/libs/problems/WorkflowProblems.ts"`; `kind`: `"problem-constructor"`; `line`: `31`; \}\]; `status`: `500`; `title`: `"Internal Server Error"`; \}, \{ `category`: `"NotFound"`; `code`: `"workflow-core/workflow-not-found"`; `cookbookPath`: `"/reference/problem-recovery-cookbook/#workflow-core-workflow-not-found"`; `lifecycle`: \{ `status`: `"active"`; \}; `recovery`: \{ `cause`: `"The requested resource or route-visible record does not exist."`; `operatorAction`: `"Confirm tenant scoping, data retention, and backing-store lookup behavior."`; `redactionPolicy`: `"public"`; `retryability`: `"not-retryable"`; `telemetry`: \{ `attributes`: readonly \[`"problem.code"`, `"problem.category"`, `"problem.status"`\]; `eventName`: `"croco.problem.info"`; `severity`: `"info"`; \}; `userAction`: `"Verify the identifier and refresh the resource list before retrying."`; \}; `sources`: readonly \[\{ `column`: `3`; `file`: `"packages/workflow-core/src/libs/problems/WorkflowProblems.ts"`; `kind`: `"problem-class"`; `line`: `5`; \}\]; `status`: `404`; `title`: `"Not Found"`; \}\]
### version
diff --git a/packages/docs/src/content/docs/api/testing/src/classes/CrocoPlaywrightEvidenceReporter.md b/packages/docs/src/content/docs/api/testing/src/classes/CrocoPlaywrightEvidenceReporter.md
new file mode 100644
index 000000000..7010073f5
--- /dev/null
+++ b/packages/docs/src/content/docs/api/testing/src/classes/CrocoPlaywrightEvidenceReporter.md
@@ -0,0 +1,52 @@
+---
+editUrl: false
+next: false
+prev: false
+title: "CrocoPlaywrightEvidenceReporter"
+---
+
+## Constructors
+
+### Constructor
+
+> **new CrocoPlaywrightEvidenceReporter**(`options`): `CrocoPlaywrightEvidenceReporter`
+
+#### Parameters
+
+##### options
+
+[`TestEvidenceReporterOptions`](/api/testing/src/type-aliases/testevidencereporteroptions/)
+
+#### Returns
+
+`CrocoPlaywrightEvidenceReporter`
+
+## Methods
+
+### onEnd()
+
+> **onEnd**(): `Promise`\<`void`\>
+
+#### Returns
+
+`Promise`\<`void`\>
+
+***
+
+### onTestEnd()
+
+> **onTestEnd**(`test`, `result`): `void`
+
+#### Parameters
+
+##### test
+
+[`PlaywrightTestCase`](/api/testing/src/type-aliases/playwrighttestcase/)
+
+##### result
+
+[`PlaywrightTestResult`](/api/testing/src/type-aliases/playwrighttestresult/)
+
+#### Returns
+
+`void`
diff --git a/packages/docs/src/content/docs/api/testing/src/classes/CrocoVitestEvidenceReporter.md b/packages/docs/src/content/docs/api/testing/src/classes/CrocoVitestEvidenceReporter.md
new file mode 100644
index 000000000..cde64947b
--- /dev/null
+++ b/packages/docs/src/content/docs/api/testing/src/classes/CrocoVitestEvidenceReporter.md
@@ -0,0 +1,38 @@
+---
+editUrl: false
+next: false
+prev: false
+title: "CrocoVitestEvidenceReporter"
+---
+
+## Constructors
+
+### Constructor
+
+> **new CrocoVitestEvidenceReporter**(`options`): `CrocoVitestEvidenceReporter`
+
+#### Parameters
+
+##### options
+
+[`TestEvidenceReporterOptions`](/api/testing/src/type-aliases/testevidencereporteroptions/)
+
+#### Returns
+
+`CrocoVitestEvidenceReporter`
+
+## Methods
+
+### onTestCaseResult()
+
+> **onTestCaseResult**(`task`): `Promise`\<`void`\>
+
+#### Parameters
+
+##### task
+
+[`VitestTask`](/api/testing/src/type-aliases/vitesttask/)
+
+#### Returns
+
+`Promise`\<`void`\>
diff --git a/packages/docs/src/content/docs/api/testing/src/classes/TestEvidenceContractError.md b/packages/docs/src/content/docs/api/testing/src/classes/TestEvidenceContractError.md
new file mode 100644
index 000000000..71268be81
--- /dev/null
+++ b/packages/docs/src/content/docs/api/testing/src/classes/TestEvidenceContractError.md
@@ -0,0 +1,298 @@
+---
+editUrl: false
+next: false
+prev: false
+title: "TestEvidenceContractError"
+---
+
+RFC 7807 Problem Details를 표현하는 기본 추상 에러 클래스입니다.
+
+## Extends
+
+- [`Problem`](/api/problems-core/src/classes/problem/)
+
+## Constructors
+
+### Constructor
+
+> **new TestEvidenceContractError**(`detail`, `cause?`): `TestEvidenceContractError`
+
+#### Parameters
+
+##### detail
+
+`string`
+
+##### cause?
+
+`unknown`
+
+#### Returns
+
+`TestEvidenceContractError`
+
+#### Overrides
+
+`Problem.constructor`
+
+## Properties
+
+### category
+
+> `readonly` **category**: [`ProblemCategory`](/api/problems-core/src/enumerations/problemcategory/)
+
+#### Inherited from
+
+[`Problem`](/api/problems-core/src/classes/problem/).[`category`](/api/problems-core/src/classes/problem/#category)
+
+***
+
+### cause?
+
+> `readonly` `optional` **cause?**: `Error`
+
+#### Inherited from
+
+[`Problem`](/api/problems-core/src/classes/problem/).[`cause`](/api/problems-core/src/classes/problem/#cause)
+
+***
+
+### code
+
+> `readonly` **code**: `"CROCO_TEST_EVIDENCE_CONTRACT_INVALID"` = `"CROCO_TEST_EVIDENCE_CONTRACT_INVALID"`
+
+#### Overrides
+
+[`Problem`](/api/problems-core/src/classes/problem/).[`code`](/api/problems-core/src/classes/problem/#code)
+
+***
+
+### detail?
+
+> `readonly` `optional` **detail?**: `string`
+
+#### Inherited from
+
+[`Problem`](/api/problems-core/src/classes/problem/).[`detail`](/api/problems-core/src/classes/problem/#detail)
+
+***
+
+### extensions?
+
+> `readonly` `optional` **extensions?**: [`ProblemExtensions`](/api/problems-core/src/type-aliases/problemextensions/)
+
+#### Inherited from
+
+[`Problem`](/api/problems-core/src/classes/problem/).[`extensions`](/api/problems-core/src/classes/problem/#extensions)
+
+***
+
+### instance?
+
+> `readonly` `optional` **instance?**: `string`
+
+#### Inherited from
+
+[`Problem`](/api/problems-core/src/classes/problem/).[`instance`](/api/problems-core/src/classes/problem/#instance)
+
+***
+
+### message
+
+> **message**: `string`
+
+#### Inherited from
+
+[`Problem`](/api/problems-core/src/classes/problem/).[`message`](/api/problems-core/src/classes/problem/#message)
+
+***
+
+### name
+
+> **name**: `string`
+
+#### Inherited from
+
+[`Problem`](/api/problems-core/src/classes/problem/).[`name`](/api/problems-core/src/classes/problem/#name)
+
+***
+
+### stack?
+
+> `optional` **stack?**: `string`
+
+#### Inherited from
+
+[`Problem`](/api/problems-core/src/classes/problem/).[`stack`](/api/problems-core/src/classes/problem/#stack)
+
+***
+
+### type
+
+> `readonly` **type**: `string`
+
+#### Inherited from
+
+[`Problem`](/api/problems-core/src/classes/problem/).[`type`](/api/problems-core/src/classes/problem/#type)
+
+***
+
+### stackTraceLimit
+
+> `static` **stackTraceLimit**: `number`
+
+The `Error.stackTraceLimit` property specifies the number of stack frames
+collected by a stack trace (whether generated by `new Error().stack` or
+`Error.captureStackTrace(obj)`).
+
+The default value is `10` but may be set to any valid JavaScript number. Changes
+will affect any stack trace captured _after_ the value has been changed.
+
+If set to a non-number value, or set to a negative number, stack traces will
+not capture any frames.
+
+#### Inherited from
+
+[`Problem`](/api/problems-core/src/classes/problem/).[`stackTraceLimit`](/api/problems-core/src/classes/problem/#stacktracelimit)
+
+## Accessors
+
+### status
+
+#### Get Signature
+
+> **get** **status**(): `number`
+
+##### Returns
+
+`number`
+
+#### Inherited from
+
+[`Problem`](/api/problems-core/src/classes/problem/).[`status`](/api/problems-core/src/classes/problem/#status)
+
+***
+
+### title
+
+#### Get Signature
+
+> **get** **title**(): `string`
+
+##### Returns
+
+`string`
+
+#### Inherited from
+
+[`Problem`](/api/problems-core/src/classes/problem/).[`title`](/api/problems-core/src/classes/problem/#title)
+
+## Methods
+
+### toJSON()
+
+> **toJSON**(): [`ProblemDetails`](/api/problems-core/src/type-aliases/problemdetails/)
+
+#### Returns
+
+[`ProblemDetails`](/api/problems-core/src/type-aliases/problemdetails/)
+
+#### Inherited from
+
+[`Problem`](/api/problems-core/src/classes/problem/).[`toJSON`](/api/problems-core/src/classes/problem/#tojson)
+
+***
+
+### captureStackTrace()
+
+> `static` **captureStackTrace**(`targetObject`, `constructorOpt?`): `void`
+
+Creates a `.stack` property on `targetObject`, which when accessed returns
+a string representing the location in the code at which
+`Error.captureStackTrace()` was called.
+
+```js
+const myObject = {};
+Error.captureStackTrace(myObject);
+myObject.stack; // Similar to `new Error().stack`
+```
+
+The first line of the trace will be prefixed with
+`${myObject.name}: ${myObject.message}`.
+
+The optional `constructorOpt` argument accepts a function. If given, all frames
+above `constructorOpt`, including `constructorOpt`, will be omitted from the
+generated stack trace.
+
+The `constructorOpt` argument is useful for hiding implementation
+details of error generation from the user. For instance:
+
+```js
+function a() {
+ b();
+}
+
+function b() {
+ c();
+}
+
+function c() {
+ // Create an error without stack trace to avoid calculating the stack trace twice.
+ const { stackTraceLimit } = Error;
+ Error.stackTraceLimit = 0;
+ const error = new Error();
+ Error.stackTraceLimit = stackTraceLimit;
+
+ // Capture the stack trace above function b
+ Error.captureStackTrace(error, b); // Neither function c, nor b is included in the stack trace
+ throw error;
+}
+
+a();
+```
+
+#### Parameters
+
+##### targetObject
+
+`object`
+
+##### constructorOpt?
+
+`Function`
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`Problem`](/api/problems-core/src/classes/problem/).[`captureStackTrace`](/api/problems-core/src/classes/problem/#capturestacktrace)
+
+***
+
+### prepareStackTrace()
+
+> `static` **prepareStackTrace**(`err`, `stackTraces`): `any`
+
+#### Parameters
+
+##### err
+
+`Error`
+
+##### stackTraces
+
+`CallSite`[]
+
+#### Returns
+
+`any`
+
+#### See
+
+https://v8.dev/docs/stack-trace-api#customizing-stack-traces
+
+#### Inherited from
+
+[`Problem`](/api/problems-core/src/classes/problem/).[`prepareStackTrace`](/api/problems-core/src/classes/problem/#preparestacktrace)
diff --git a/packages/docs/src/content/docs/api/testing/src/classes/TestEvidenceFidelityError.md b/packages/docs/src/content/docs/api/testing/src/classes/TestEvidenceFidelityError.md
new file mode 100644
index 000000000..4e970db8e
--- /dev/null
+++ b/packages/docs/src/content/docs/api/testing/src/classes/TestEvidenceFidelityError.md
@@ -0,0 +1,302 @@
+---
+editUrl: false
+next: false
+prev: false
+title: "TestEvidenceFidelityError"
+---
+
+RFC 7807 Problem Details를 표현하는 기본 추상 에러 클래스입니다.
+
+## Extends
+
+- [`Problem`](/api/problems-core/src/classes/problem/)
+
+## Constructors
+
+### Constructor
+
+> **new TestEvidenceFidelityError**(`record`, `field`, `expected`): `TestEvidenceFidelityError`
+
+#### Parameters
+
+##### record
+
+[`TestEvidenceRecord`](/api/testing/src/type-aliases/testevidencerecord/)
+
+##### field
+
+keyof [`TestEvidenceFidelity`](/api/testing/src/type-aliases/testevidencefidelity/)
+
+##### expected
+
+`string`
+
+#### Returns
+
+`TestEvidenceFidelityError`
+
+#### Overrides
+
+`Problem.constructor`
+
+## Properties
+
+### category
+
+> `readonly` **category**: [`ProblemCategory`](/api/problems-core/src/enumerations/problemcategory/)
+
+#### Inherited from
+
+[`Problem`](/api/problems-core/src/classes/problem/).[`category`](/api/problems-core/src/classes/problem/#category)
+
+***
+
+### cause?
+
+> `readonly` `optional` **cause?**: `Error`
+
+#### Inherited from
+
+[`Problem`](/api/problems-core/src/classes/problem/).[`cause`](/api/problems-core/src/classes/problem/#cause)
+
+***
+
+### code
+
+> `readonly` **code**: `"CROCO_TEST_EVIDENCE_FIDELITY_UNSATISFIED"` = `"CROCO_TEST_EVIDENCE_FIDELITY_UNSATISFIED"`
+
+#### Overrides
+
+[`Problem`](/api/problems-core/src/classes/problem/).[`code`](/api/problems-core/src/classes/problem/#code)
+
+***
+
+### detail?
+
+> `readonly` `optional` **detail?**: `string`
+
+#### Inherited from
+
+[`Problem`](/api/problems-core/src/classes/problem/).[`detail`](/api/problems-core/src/classes/problem/#detail)
+
+***
+
+### extensions?
+
+> `readonly` `optional` **extensions?**: [`ProblemExtensions`](/api/problems-core/src/type-aliases/problemextensions/)
+
+#### Inherited from
+
+[`Problem`](/api/problems-core/src/classes/problem/).[`extensions`](/api/problems-core/src/classes/problem/#extensions)
+
+***
+
+### instance?
+
+> `readonly` `optional` **instance?**: `string`
+
+#### Inherited from
+
+[`Problem`](/api/problems-core/src/classes/problem/).[`instance`](/api/problems-core/src/classes/problem/#instance)
+
+***
+
+### message
+
+> **message**: `string`
+
+#### Inherited from
+
+[`Problem`](/api/problems-core/src/classes/problem/).[`message`](/api/problems-core/src/classes/problem/#message)
+
+***
+
+### name
+
+> **name**: `string`
+
+#### Inherited from
+
+[`Problem`](/api/problems-core/src/classes/problem/).[`name`](/api/problems-core/src/classes/problem/#name)
+
+***
+
+### stack?
+
+> `optional` **stack?**: `string`
+
+#### Inherited from
+
+[`Problem`](/api/problems-core/src/classes/problem/).[`stack`](/api/problems-core/src/classes/problem/#stack)
+
+***
+
+### type
+
+> `readonly` **type**: `string`
+
+#### Inherited from
+
+[`Problem`](/api/problems-core/src/classes/problem/).[`type`](/api/problems-core/src/classes/problem/#type)
+
+***
+
+### stackTraceLimit
+
+> `static` **stackTraceLimit**: `number`
+
+The `Error.stackTraceLimit` property specifies the number of stack frames
+collected by a stack trace (whether generated by `new Error().stack` or
+`Error.captureStackTrace(obj)`).
+
+The default value is `10` but may be set to any valid JavaScript number. Changes
+will affect any stack trace captured _after_ the value has been changed.
+
+If set to a non-number value, or set to a negative number, stack traces will
+not capture any frames.
+
+#### Inherited from
+
+[`Problem`](/api/problems-core/src/classes/problem/).[`stackTraceLimit`](/api/problems-core/src/classes/problem/#stacktracelimit)
+
+## Accessors
+
+### status
+
+#### Get Signature
+
+> **get** **status**(): `number`
+
+##### Returns
+
+`number`
+
+#### Inherited from
+
+[`Problem`](/api/problems-core/src/classes/problem/).[`status`](/api/problems-core/src/classes/problem/#status)
+
+***
+
+### title
+
+#### Get Signature
+
+> **get** **title**(): `string`
+
+##### Returns
+
+`string`
+
+#### Inherited from
+
+[`Problem`](/api/problems-core/src/classes/problem/).[`title`](/api/problems-core/src/classes/problem/#title)
+
+## Methods
+
+### toJSON()
+
+> **toJSON**(): [`ProblemDetails`](/api/problems-core/src/type-aliases/problemdetails/)
+
+#### Returns
+
+[`ProblemDetails`](/api/problems-core/src/type-aliases/problemdetails/)
+
+#### Inherited from
+
+[`Problem`](/api/problems-core/src/classes/problem/).[`toJSON`](/api/problems-core/src/classes/problem/#tojson)
+
+***
+
+### captureStackTrace()
+
+> `static` **captureStackTrace**(`targetObject`, `constructorOpt?`): `void`
+
+Creates a `.stack` property on `targetObject`, which when accessed returns
+a string representing the location in the code at which
+`Error.captureStackTrace()` was called.
+
+```js
+const myObject = {};
+Error.captureStackTrace(myObject);
+myObject.stack; // Similar to `new Error().stack`
+```
+
+The first line of the trace will be prefixed with
+`${myObject.name}: ${myObject.message}`.
+
+The optional `constructorOpt` argument accepts a function. If given, all frames
+above `constructorOpt`, including `constructorOpt`, will be omitted from the
+generated stack trace.
+
+The `constructorOpt` argument is useful for hiding implementation
+details of error generation from the user. For instance:
+
+```js
+function a() {
+ b();
+}
+
+function b() {
+ c();
+}
+
+function c() {
+ // Create an error without stack trace to avoid calculating the stack trace twice.
+ const { stackTraceLimit } = Error;
+ Error.stackTraceLimit = 0;
+ const error = new Error();
+ Error.stackTraceLimit = stackTraceLimit;
+
+ // Capture the stack trace above function b
+ Error.captureStackTrace(error, b); // Neither function c, nor b is included in the stack trace
+ throw error;
+}
+
+a();
+```
+
+#### Parameters
+
+##### targetObject
+
+`object`
+
+##### constructorOpt?
+
+`Function`
+
+#### Returns
+
+`void`
+
+#### Inherited from
+
+[`Problem`](/api/problems-core/src/classes/problem/).[`captureStackTrace`](/api/problems-core/src/classes/problem/#capturestacktrace)
+
+***
+
+### prepareStackTrace()
+
+> `static` **prepareStackTrace**(`err`, `stackTraces`): `any`
+
+#### Parameters
+
+##### err
+
+`Error`
+
+##### stackTraces
+
+`CallSite`[]
+
+#### Returns
+
+`any`
+
+#### See
+
+https://v8.dev/docs/stack-trace-api#customizing-stack-traces
+
+#### Inherited from
+
+[`Problem`](/api/problems-core/src/classes/problem/).[`prepareStackTrace`](/api/problems-core/src/classes/problem/#preparestacktrace)
diff --git a/packages/docs/src/content/docs/api/testing/src/functions/assertNoTestEvidenceSecrets.md b/packages/docs/src/content/docs/api/testing/src/functions/assertNoTestEvidenceSecrets.md
new file mode 100644
index 000000000..4df74cd45
--- /dev/null
+++ b/packages/docs/src/content/docs/api/testing/src/functions/assertNoTestEvidenceSecrets.md
@@ -0,0 +1,22 @@
+---
+editUrl: false
+next: false
+prev: false
+title: "assertNoTestEvidenceSecrets"
+---
+
+> **assertNoTestEvidenceSecrets**(`value`, `secretSamples`): `void`
+
+## Parameters
+
+### value
+
+`unknown`
+
+### secretSamples
+
+readonly `string`[]
+
+## Returns
+
+`void`
diff --git a/packages/docs/src/content/docs/api/testing/src/functions/assertTestEvidenceBundle.md b/packages/docs/src/content/docs/api/testing/src/functions/assertTestEvidenceBundle.md
new file mode 100644
index 000000000..da768f4f2
--- /dev/null
+++ b/packages/docs/src/content/docs/api/testing/src/functions/assertTestEvidenceBundle.md
@@ -0,0 +1,18 @@
+---
+editUrl: false
+next: false
+prev: false
+title: "assertTestEvidenceBundle"
+---
+
+> **assertTestEvidenceBundle**(`value`): `asserts value is TestEvidenceBundle`
+
+## Parameters
+
+### value
+
+`unknown`
+
+## Returns
+
+`asserts value is TestEvidenceBundle`
diff --git a/packages/docs/src/content/docs/api/testing/src/functions/assertTestEvidenceFidelity.md b/packages/docs/src/content/docs/api/testing/src/functions/assertTestEvidenceFidelity.md
new file mode 100644
index 000000000..c5b7fd339
--- /dev/null
+++ b/packages/docs/src/content/docs/api/testing/src/functions/assertTestEvidenceFidelity.md
@@ -0,0 +1,22 @@
+---
+editUrl: false
+next: false
+prev: false
+title: "assertTestEvidenceFidelity"
+---
+
+> **assertTestEvidenceFidelity**(`record`, `requirement`): `void`
+
+## Parameters
+
+### record
+
+[`TestEvidenceRecord`](/api/testing/src/type-aliases/testevidencerecord/)
+
+### requirement
+
+[`TestEvidenceFidelityRequirement`](/api/testing/src/type-aliases/testevidencefidelityrequirement/)
+
+## Returns
+
+`void`
diff --git a/packages/docs/src/content/docs/api/testing/src/functions/assertTestEvidenceRecord.md b/packages/docs/src/content/docs/api/testing/src/functions/assertTestEvidenceRecord.md
new file mode 100644
index 000000000..3e299164a
--- /dev/null
+++ b/packages/docs/src/content/docs/api/testing/src/functions/assertTestEvidenceRecord.md
@@ -0,0 +1,18 @@
+---
+editUrl: false
+next: false
+prev: false
+title: "assertTestEvidenceRecord"
+---
+
+> **assertTestEvidenceRecord**(`value`): `asserts value is TestEvidenceRecord`
+
+## Parameters
+
+### value
+
+`unknown`
+
+## Returns
+
+`asserts value is TestEvidenceRecord`
diff --git a/packages/docs/src/content/docs/api/testing/src/functions/classifyTestEvidenceOutcome.md b/packages/docs/src/content/docs/api/testing/src/functions/classifyTestEvidenceOutcome.md
new file mode 100644
index 000000000..226ae384e
--- /dev/null
+++ b/packages/docs/src/content/docs/api/testing/src/functions/classifyTestEvidenceOutcome.md
@@ -0,0 +1,18 @@
+---
+editUrl: false
+next: false
+prev: false
+title: "classifyTestEvidenceOutcome"
+---
+
+> **classifyTestEvidenceOutcome**(`attempts`): [`TestEvidenceOutcome`](/api/testing/src/type-aliases/testevidenceoutcome/)
+
+## Parameters
+
+### attempts
+
+readonly [`TestEvidenceAttempt`](/api/testing/src/type-aliases/testevidenceattempt/)[]
+
+## Returns
+
+[`TestEvidenceOutcome`](/api/testing/src/type-aliases/testevidenceoutcome/)
diff --git a/packages/docs/src/content/docs/api/testing/src/functions/createTestEvidenceBundle.md b/packages/docs/src/content/docs/api/testing/src/functions/createTestEvidenceBundle.md
new file mode 100644
index 000000000..f5bb67726
--- /dev/null
+++ b/packages/docs/src/content/docs/api/testing/src/functions/createTestEvidenceBundle.md
@@ -0,0 +1,22 @@
+---
+editUrl: false
+next: false
+prev: false
+title: "createTestEvidenceBundle"
+---
+
+> **createTestEvidenceBundle**(`records`, `artifactExists?`): [`TestEvidenceBundle`](/api/testing/src/type-aliases/testevidencebundle/)
+
+## Parameters
+
+### records
+
+readonly [`TestEvidenceRecord`](/api/testing/src/type-aliases/testevidencerecord/)[]
+
+### artifactExists?
+
+[`TestEvidenceArtifactProbe`](/api/testing/src/type-aliases/testevidenceartifactprobe/) = `...`
+
+## Returns
+
+[`TestEvidenceBundle`](/api/testing/src/type-aliases/testevidencebundle/)
diff --git a/packages/docs/src/content/docs/api/testing/src/functions/createTestEvidenceFileWriter.md b/packages/docs/src/content/docs/api/testing/src/functions/createTestEvidenceFileWriter.md
new file mode 100644
index 000000000..ed8af3a9a
--- /dev/null
+++ b/packages/docs/src/content/docs/api/testing/src/functions/createTestEvidenceFileWriter.md
@@ -0,0 +1,18 @@
+---
+editUrl: false
+next: false
+prev: false
+title: "createTestEvidenceFileWriter"
+---
+
+> **createTestEvidenceFileWriter**(`options?`): (`record`) => `void`
+
+## Parameters
+
+### options?
+
+[`TestEvidenceFileWriterOptions`](/api/testing/src/type-aliases/testevidencefilewriteroptions/) = `{}`
+
+## Returns
+
+(`record`) => `void`
diff --git a/packages/docs/src/content/docs/api/testing/src/functions/createTestEvidenceRecord.md b/packages/docs/src/content/docs/api/testing/src/functions/createTestEvidenceRecord.md
new file mode 100644
index 000000000..a30fc6947
--- /dev/null
+++ b/packages/docs/src/content/docs/api/testing/src/functions/createTestEvidenceRecord.md
@@ -0,0 +1,18 @@
+---
+editUrl: false
+next: false
+prev: false
+title: "createTestEvidenceRecord"
+---
+
+> **createTestEvidenceRecord**(`input`): [`TestEvidenceRecord`](/api/testing/src/type-aliases/testevidencerecord/)
+
+## Parameters
+
+### input
+
+[`TestEvidenceRecordInput`](/api/testing/src/type-aliases/testevidencerecordinput/)
+
+## Returns
+
+[`TestEvidenceRecord`](/api/testing/src/type-aliases/testevidencerecord/)
diff --git a/packages/docs/src/content/docs/api/testing/src/functions/createTestKernelEvidenceRecord.md b/packages/docs/src/content/docs/api/testing/src/functions/createTestKernelEvidenceRecord.md
new file mode 100644
index 000000000..3ace5e0f2
--- /dev/null
+++ b/packages/docs/src/content/docs/api/testing/src/functions/createTestKernelEvidenceRecord.md
@@ -0,0 +1,18 @@
+---
+editUrl: false
+next: false
+prev: false
+title: "createTestKernelEvidenceRecord"
+---
+
+> **createTestKernelEvidenceRecord**(`input`): [`TestEvidenceRecord`](/api/testing/src/type-aliases/testevidencerecord/)
+
+## Parameters
+
+### input
+
+[`TestKernelEvidenceRecordInput`](/api/testing/src/type-aliases/testkernelevidencerecordinput/)
+
+## Returns
+
+[`TestEvidenceRecord`](/api/testing/src/type-aliases/testevidencerecord/)
diff --git a/packages/docs/src/content/docs/api/testing/src/functions/redactTestEvidence.md b/packages/docs/src/content/docs/api/testing/src/functions/redactTestEvidence.md
new file mode 100644
index 000000000..2481991b4
--- /dev/null
+++ b/packages/docs/src/content/docs/api/testing/src/functions/redactTestEvidence.md
@@ -0,0 +1,24 @@
+---
+editUrl: false
+next: false
+prev: false
+title: "redactTestEvidence"
+---
+
+> **redactTestEvidence**\<`T`\>(`value`): `T`
+
+## Type Parameters
+
+### T
+
+`T`
+
+## Parameters
+
+### value
+
+`T`
+
+## Returns
+
+`T`
diff --git a/packages/docs/src/content/docs/api/testing/src/functions/renderTestEvidenceMarkdown.md b/packages/docs/src/content/docs/api/testing/src/functions/renderTestEvidenceMarkdown.md
new file mode 100644
index 000000000..86d4f7763
--- /dev/null
+++ b/packages/docs/src/content/docs/api/testing/src/functions/renderTestEvidenceMarkdown.md
@@ -0,0 +1,18 @@
+---
+editUrl: false
+next: false
+prev: false
+title: "renderTestEvidenceMarkdown"
+---
+
+> **renderTestEvidenceMarkdown**(`bundle`): `string`
+
+## Parameters
+
+### bundle
+
+[`TestEvidenceBundle`](/api/testing/src/type-aliases/testevidencebundle/)
+
+## Returns
+
+`string`
diff --git a/packages/docs/src/content/docs/api/testing/src/functions/serializeTestEvidence.md b/packages/docs/src/content/docs/api/testing/src/functions/serializeTestEvidence.md
new file mode 100644
index 000000000..be586e4ed
--- /dev/null
+++ b/packages/docs/src/content/docs/api/testing/src/functions/serializeTestEvidence.md
@@ -0,0 +1,18 @@
+---
+editUrl: false
+next: false
+prev: false
+title: "serializeTestEvidence"
+---
+
+> **serializeTestEvidence**(`value`): `string`
+
+## Parameters
+
+### value
+
+[`TestEvidenceBundle`](/api/testing/src/type-aliases/testevidencebundle/) \| [`TestEvidenceRecord`](/api/testing/src/type-aliases/testevidencerecord/)
+
+## Returns
+
+`string`
diff --git a/packages/docs/src/content/docs/api/testing/src/functions/testEvidenceFidelityFromKernel.md b/packages/docs/src/content/docs/api/testing/src/functions/testEvidenceFidelityFromKernel.md
new file mode 100644
index 000000000..c81532d27
--- /dev/null
+++ b/packages/docs/src/content/docs/api/testing/src/functions/testEvidenceFidelityFromKernel.md
@@ -0,0 +1,22 @@
+---
+editUrl: false
+next: false
+prev: false
+title: "testEvidenceFidelityFromKernel"
+---
+
+> **testEvidenceFidelityFromKernel**(`kernel`, `resources?`): [`TestEvidenceFidelity`](/api/testing/src/type-aliases/testevidencefidelity/)
+
+## Parameters
+
+### kernel
+
+[`TestKernelFidelity`](/api/testing/src/type-aliases/testkernelfidelity/)
+
+### resources?
+
+readonly [`TestKernelResourceEvidence`](/api/testing/src/type-aliases/testkernelresourceevidence/)[] = `[]`
+
+## Returns
+
+[`TestEvidenceFidelity`](/api/testing/src/type-aliases/testevidencefidelity/)
diff --git a/packages/docs/src/content/docs/api/testing/src/type-aliases/PlaywrightTestCase.md b/packages/docs/src/content/docs/api/testing/src/type-aliases/PlaywrightTestCase.md
new file mode 100644
index 000000000..f42ed6942
--- /dev/null
+++ b/packages/docs/src/content/docs/api/testing/src/type-aliases/PlaywrightTestCase.md
@@ -0,0 +1,36 @@
+---
+editUrl: false
+next: false
+prev: false
+title: "PlaywrightTestCase"
+---
+
+> **PlaywrightTestCase** = `object`
+
+## Properties
+
+### expectedStatus?
+
+> `readonly` `optional` **expectedStatus?**: [`PlaywrightTestResult`](/api/testing/src/type-aliases/playwrighttestresult/)\[`"status"`\]
+
+***
+
+### id
+
+> `readonly` **id**: `string`
+
+***
+
+### title
+
+> `readonly` **title**: `string`
+
+***
+
+### titlePath?
+
+> `readonly` `optional` **titlePath?**: () => readonly `string`[]
+
+#### Returns
+
+readonly `string`[]
diff --git a/packages/docs/src/content/docs/api/testing/src/type-aliases/PlaywrightTestResult.md b/packages/docs/src/content/docs/api/testing/src/type-aliases/PlaywrightTestResult.md
new file mode 100644
index 000000000..b020960fc
--- /dev/null
+++ b/packages/docs/src/content/docs/api/testing/src/type-aliases/PlaywrightTestResult.md
@@ -0,0 +1,44 @@
+---
+editUrl: false
+next: false
+prev: false
+title: "PlaywrightTestResult"
+---
+
+> **PlaywrightTestResult** = `object`
+
+## Properties
+
+### attachments?
+
+> `readonly` `optional` **attachments?**: readonly `object`[]
+
+***
+
+### duration
+
+> `readonly` **duration**: `number`
+
+***
+
+### error?
+
+> `readonly` `optional` **error?**: `unknown`
+
+***
+
+### errors?
+
+> `readonly` `optional` **errors?**: readonly `unknown`[]
+
+***
+
+### retry?
+
+> `readonly` `optional` **retry?**: `number`
+
+***
+
+### status
+
+> `readonly` **status**: `"failed"` \| `"interrupted"` \| `"passed"` \| `"skipped"` \| `"timedOut"`
diff --git a/packages/docs/src/content/docs/api/testing/src/type-aliases/TestEvidenceArtifactProbe.md b/packages/docs/src/content/docs/api/testing/src/type-aliases/TestEvidenceArtifactProbe.md
new file mode 100644
index 000000000..7040713c9
--- /dev/null
+++ b/packages/docs/src/content/docs/api/testing/src/type-aliases/TestEvidenceArtifactProbe.md
@@ -0,0 +1,18 @@
+---
+editUrl: false
+next: false
+prev: false
+title: "TestEvidenceArtifactProbe"
+---
+
+> **TestEvidenceArtifactProbe** = (`path`) => `boolean`
+
+## Parameters
+
+### path
+
+`string`
+
+## Returns
+
+`boolean`
diff --git a/packages/docs/src/content/docs/api/testing/src/type-aliases/TestEvidenceAttachment.md b/packages/docs/src/content/docs/api/testing/src/type-aliases/TestEvidenceAttachment.md
new file mode 100644
index 000000000..bcfe71ebf
--- /dev/null
+++ b/packages/docs/src/content/docs/api/testing/src/type-aliases/TestEvidenceAttachment.md
@@ -0,0 +1,26 @@
+---
+editUrl: false
+next: false
+prev: false
+title: "TestEvidenceAttachment"
+---
+
+> **TestEvidenceAttachment** = `object`
+
+## Properties
+
+### kind
+
+> `readonly` **kind**: `"contract"` \| `"coverage"` \| `"log"` \| `"report"` \| `"screenshot"` \| `"trace"`
+
+***
+
+### path
+
+> `readonly` **path**: `string`
+
+***
+
+### schemaVersion?
+
+> `readonly` `optional` **schemaVersion?**: `string`
diff --git a/packages/docs/src/content/docs/api/testing/src/type-aliases/TestEvidenceAttempt.md b/packages/docs/src/content/docs/api/testing/src/type-aliases/TestEvidenceAttempt.md
new file mode 100644
index 000000000..857eba135
--- /dev/null
+++ b/packages/docs/src/content/docs/api/testing/src/type-aliases/TestEvidenceAttempt.md
@@ -0,0 +1,38 @@
+---
+editUrl: false
+next: false
+prev: false
+title: "TestEvidenceAttempt"
+---
+
+> **TestEvidenceAttempt** = `object`
+
+## Properties
+
+### attachments?
+
+> `readonly` `optional` **attachments?**: readonly [`TestEvidenceAttachment`](/api/testing/src/type-aliases/testevidenceattachment/)[]
+
+***
+
+### attempt
+
+> `readonly` **attempt**: `number`
+
+***
+
+### diagnostics?
+
+> `readonly` `optional` **diagnostics?**: readonly [`TestEvidenceDiagnostic`](/api/testing/src/type-aliases/testevidencediagnostic/)[]
+
+***
+
+### durationMs?
+
+> `readonly` `optional` **durationMs?**: `number`
+
+***
+
+### outcome
+
+> `readonly` **outcome**: [`TestEvidenceAttemptOutcome`](/api/testing/src/type-aliases/testevidenceattemptoutcome/)
diff --git a/packages/docs/src/content/docs/api/testing/src/type-aliases/TestEvidenceAttemptOutcome.md b/packages/docs/src/content/docs/api/testing/src/type-aliases/TestEvidenceAttemptOutcome.md
new file mode 100644
index 000000000..e5fd44cb3
--- /dev/null
+++ b/packages/docs/src/content/docs/api/testing/src/type-aliases/TestEvidenceAttemptOutcome.md
@@ -0,0 +1,8 @@
+---
+editUrl: false
+next: false
+prev: false
+title: "TestEvidenceAttemptOutcome"
+---
+
+> **TestEvidenceAttemptOutcome** = `Exclude`\<[`TestEvidenceOutcome`](/api/testing/src/type-aliases/testevidenceoutcome/), `"flaky"`\>
diff --git a/packages/docs/src/content/docs/api/testing/src/type-aliases/TestEvidenceBundle.md b/packages/docs/src/content/docs/api/testing/src/type-aliases/TestEvidenceBundle.md
new file mode 100644
index 000000000..0c0e6be40
--- /dev/null
+++ b/packages/docs/src/content/docs/api/testing/src/type-aliases/TestEvidenceBundle.md
@@ -0,0 +1,58 @@
+---
+editUrl: false
+next: false
+prev: false
+title: "TestEvidenceBundle"
+---
+
+> **TestEvidenceBundle** = `object`
+
+## Properties
+
+### missingArtifacts
+
+> `readonly` **missingArtifacts**: readonly [`TestEvidenceMissingArtifact`](/api/testing/src/type-aliases/testevidencemissingartifact/)[]
+
+***
+
+### records
+
+> `readonly` **records**: readonly [`TestEvidenceRecord`](/api/testing/src/type-aliases/testevidencerecord/)[]
+
+***
+
+### schemaVersion
+
+> `readonly` **schemaVersion**: *typeof* [`TEST_EVIDENCE_SCHEMA_VERSION`](/api/testing/src/variables/test_evidence_schema_version/)
+
+***
+
+### status
+
+> `readonly` **status**: `"passed"` \| `"failed"`
+
+***
+
+### summary
+
+> `readonly` **summary**: `object`
+
+#### failed
+
+> `readonly` **failed**: `number`
+
+#### flaky
+
+> `readonly` **flaky**: `number`
+
+#### passed
+
+> `readonly` **passed**: `number`
+
+#### skipped
+
+> `readonly` **skipped**: `number`
+
+#### total
+
+> `readonly` **total**: `number`
diff --git a/packages/docs/src/content/docs/api/testing/src/type-aliases/TestEvidenceDiagnostic.md b/packages/docs/src/content/docs/api/testing/src/type-aliases/TestEvidenceDiagnostic.md
new file mode 100644
index 000000000..74f0203d0
--- /dev/null
+++ b/packages/docs/src/content/docs/api/testing/src/type-aliases/TestEvidenceDiagnostic.md
@@ -0,0 +1,20 @@
+---
+editUrl: false
+next: false
+prev: false
+title: "TestEvidenceDiagnostic"
+---
+
+> **TestEvidenceDiagnostic** = `object`
+
+## Properties
+
+### code
+
+> `readonly` **code**: `string`
+
+***
+
+### recoveryAction
+
+> `readonly` **recoveryAction**: `string`
diff --git a/packages/docs/src/content/docs/api/testing/src/type-aliases/TestEvidenceFidelity.md b/packages/docs/src/content/docs/api/testing/src/type-aliases/TestEvidenceFidelity.md
new file mode 100644
index 000000000..cb2e60ee3
--- /dev/null
+++ b/packages/docs/src/content/docs/api/testing/src/type-aliases/TestEvidenceFidelity.md
@@ -0,0 +1,38 @@
+---
+editUrl: false
+next: false
+prev: false
+title: "TestEvidenceFidelity"
+---
+
+> **TestEvidenceFidelity** = `object`
+
+## Properties
+
+### boot
+
+> `readonly` **boot**: `"isolated"` \| `"application"` \| `"adapter"`
+
+***
+
+### dependency
+
+> `readonly` **dependency**: `"fake"` \| `"local-real"` \| `"remote-real"`
+
+***
+
+### isolation
+
+> `readonly` **isolation**: `"fake"` \| `"rollback"` \| `"commit"` \| `"migration"`
+
+***
+
+### runtime
+
+> `readonly` **runtime**: `"node"` \| `"lambda"` \| `"cloudflare"` \| `"browser"`
+
+***
+
+### validation
+
+> `readonly` **validation**: `"isolated"` \| `"production"` \| `"overridden"`
diff --git a/packages/docs/src/content/docs/api/testing/src/type-aliases/TestEvidenceFidelityRequirement.md b/packages/docs/src/content/docs/api/testing/src/type-aliases/TestEvidenceFidelityRequirement.md
new file mode 100644
index 000000000..fc07c4702
--- /dev/null
+++ b/packages/docs/src/content/docs/api/testing/src/type-aliases/TestEvidenceFidelityRequirement.md
@@ -0,0 +1,8 @@
+---
+editUrl: false
+next: false
+prev: false
+title: "TestEvidenceFidelityRequirement"
+---
+
+> **TestEvidenceFidelityRequirement** = `Partial`\<[`TestEvidenceFidelity`](/api/testing/src/type-aliases/testevidencefidelity/)\>
diff --git a/packages/docs/src/content/docs/api/testing/src/type-aliases/TestEvidenceFileWriterOptions.md b/packages/docs/src/content/docs/api/testing/src/type-aliases/TestEvidenceFileWriterOptions.md
new file mode 100644
index 000000000..f3faf338d
--- /dev/null
+++ b/packages/docs/src/content/docs/api/testing/src/type-aliases/TestEvidenceFileWriterOptions.md
@@ -0,0 +1,14 @@
+---
+editUrl: false
+next: false
+prev: false
+title: "TestEvidenceFileWriterOptions"
+---
+
+> **TestEvidenceFileWriterOptions** = `object`
+
+## Properties
+
+### outputDirectory?
+
+> `readonly` `optional` **outputDirectory?**: `string`
diff --git a/packages/docs/src/content/docs/api/testing/src/type-aliases/TestEvidenceIntent.md b/packages/docs/src/content/docs/api/testing/src/type-aliases/TestEvidenceIntent.md
new file mode 100644
index 000000000..7cb7b718a
--- /dev/null
+++ b/packages/docs/src/content/docs/api/testing/src/type-aliases/TestEvidenceIntent.md
@@ -0,0 +1,20 @@
+---
+editUrl: false
+next: false
+prev: false
+title: "TestEvidenceIntent"
+---
+
+> **TestEvidenceIntent** = `object`
+
+## Properties
+
+### contractIds
+
+> `readonly` **contractIds**: readonly `string`[]
+
+***
+
+### description
+
+> `readonly` **description**: `string`
diff --git a/packages/docs/src/content/docs/api/testing/src/type-aliases/TestEvidenceJsonValue.md b/packages/docs/src/content/docs/api/testing/src/type-aliases/TestEvidenceJsonValue.md
new file mode 100644
index 000000000..258905430
--- /dev/null
+++ b/packages/docs/src/content/docs/api/testing/src/type-aliases/TestEvidenceJsonValue.md
@@ -0,0 +1,8 @@
+---
+editUrl: false
+next: false
+prev: false
+title: "TestEvidenceJsonValue"
+---
+
+> **TestEvidenceJsonValue** = `boolean` \| `number` \| `string` \| `null` \| readonly `TestEvidenceJsonValue`[] \| \{\[`key`: `string`\]: `TestEvidenceJsonValue`; \}
diff --git a/packages/docs/src/content/docs/api/testing/src/type-aliases/TestEvidenceMissingArtifact.md b/packages/docs/src/content/docs/api/testing/src/type-aliases/TestEvidenceMissingArtifact.md
new file mode 100644
index 000000000..ef818c68a
--- /dev/null
+++ b/packages/docs/src/content/docs/api/testing/src/type-aliases/TestEvidenceMissingArtifact.md
@@ -0,0 +1,26 @@
+---
+editUrl: false
+next: false
+prev: false
+title: "TestEvidenceMissingArtifact"
+---
+
+> **TestEvidenceMissingArtifact** = `object`
+
+## Properties
+
+### path
+
+> `readonly` **path**: `string`
+
+***
+
+### recordId
+
+> `readonly` **recordId**: `string`
+
+***
+
+### required
+
+> `readonly` **required**: `true`
diff --git a/packages/docs/src/content/docs/api/testing/src/type-aliases/TestEvidenceObservation.md b/packages/docs/src/content/docs/api/testing/src/type-aliases/TestEvidenceObservation.md
new file mode 100644
index 000000000..ceaf31652
--- /dev/null
+++ b/packages/docs/src/content/docs/api/testing/src/type-aliases/TestEvidenceObservation.md
@@ -0,0 +1,32 @@
+---
+editUrl: false
+next: false
+prev: false
+title: "TestEvidenceObservation"
+---
+
+> **TestEvidenceObservation** = `object`
+
+## Properties
+
+### contractIds
+
+> `readonly` **contractIds**: readonly `string`[]
+
+***
+
+### eventIds?
+
+> `readonly` `optional` **eventIds?**: readonly `string`[]
+
+***
+
+### problemCodes?
+
+> `readonly` `optional` **problemCodes?**: readonly `string`[]
+
+***
+
+### routeIds?
+
+> `readonly` `optional` **routeIds?**: readonly `string`[]
diff --git a/packages/docs/src/content/docs/api/testing/src/type-aliases/TestEvidenceOutcome.md b/packages/docs/src/content/docs/api/testing/src/type-aliases/TestEvidenceOutcome.md
new file mode 100644
index 000000000..04e70538f
--- /dev/null
+++ b/packages/docs/src/content/docs/api/testing/src/type-aliases/TestEvidenceOutcome.md
@@ -0,0 +1,8 @@
+---
+editUrl: false
+next: false
+prev: false
+title: "TestEvidenceOutcome"
+---
+
+> **TestEvidenceOutcome** = `"passed"` \| `"failed"` \| `"flaky"` \| `"skipped"`
diff --git a/packages/docs/src/content/docs/api/testing/src/type-aliases/TestEvidenceRecord.md b/packages/docs/src/content/docs/api/testing/src/type-aliases/TestEvidenceRecord.md
new file mode 100644
index 000000000..27571639a
--- /dev/null
+++ b/packages/docs/src/content/docs/api/testing/src/type-aliases/TestEvidenceRecord.md
@@ -0,0 +1,92 @@
+---
+editUrl: false
+next: false
+prev: false
+title: "TestEvidenceRecord"
+---
+
+> **TestEvidenceRecord** = `object`
+
+## Properties
+
+### attachments
+
+> `readonly` **attachments**: readonly [`TestEvidenceAttachment`](/api/testing/src/type-aliases/testevidenceattachment/)[]
+
+***
+
+### attempts
+
+> `readonly` **attempts**: readonly [`TestEvidenceAttempt`](/api/testing/src/type-aliases/testevidenceattempt/)[]
+
+***
+
+### diagnostics
+
+> `readonly` **diagnostics**: readonly [`TestEvidenceDiagnostic`](/api/testing/src/type-aliases/testevidencediagnostic/)[]
+
+***
+
+### fidelity
+
+> `readonly` **fidelity**: [`TestEvidenceFidelity`](/api/testing/src/type-aliases/testevidencefidelity/)
+
+***
+
+### id
+
+> `readonly` **id**: `string`
+
+***
+
+### intent
+
+> `readonly` **intent**: [`TestEvidenceIntent`](/api/testing/src/type-aliases/testevidenceintent/)
+
+***
+
+### metadata?
+
+> `readonly` `optional` **metadata?**: `Readonly`\<`Record`\<`string`, [`TestEvidenceJsonValue`](/api/testing/src/type-aliases/testevidencejsonvalue/)\>\>
+
+***
+
+### observed
+
+> `readonly` **observed**: [`TestEvidenceObservation`](/api/testing/src/type-aliases/testevidenceobservation/)
+
+***
+
+### outcome
+
+> `readonly` **outcome**: [`TestEvidenceOutcome`](/api/testing/src/type-aliases/testevidenceoutcome/)
+
+***
+
+### replay
+
+> `readonly` **replay**: [`TestEvidenceReplay`](/api/testing/src/type-aliases/testevidencereplay/)
+
+***
+
+### resources
+
+> `readonly` **resources**: [`TestEvidenceResourceStatus`](/api/testing/src/type-aliases/testevidenceresourcestatus/)
+
+***
+
+### runner
+
+> `readonly` **runner**: [`TestEvidenceRunner`](/api/testing/src/type-aliases/testevidencerunner/)
+
+***
+
+### schemaVersion
+
+> `readonly` **schemaVersion**: *typeof* [`TEST_EVIDENCE_SCHEMA_VERSION`](/api/testing/src/variables/test_evidence_schema_version/)
+
+***
+
+### timing?
+
+> `readonly` `optional` **timing?**: [`TestEvidenceTiming`](/api/testing/src/type-aliases/testevidencetiming/)
diff --git a/packages/docs/src/content/docs/api/testing/src/type-aliases/TestEvidenceRecordInput.md b/packages/docs/src/content/docs/api/testing/src/type-aliases/TestEvidenceRecordInput.md
new file mode 100644
index 000000000..b9e2821e7
--- /dev/null
+++ b/packages/docs/src/content/docs/api/testing/src/type-aliases/TestEvidenceRecordInput.md
@@ -0,0 +1,18 @@
+---
+editUrl: false
+next: false
+prev: false
+title: "TestEvidenceRecordInput"
+---
+
+> **TestEvidenceRecordInput** = `Omit`\<[`TestEvidenceRecord`](/api/testing/src/type-aliases/testevidencerecord/), `"schemaVersion"` \| `"outcome"` \| `"diagnostics"` \| `"attachments"`\> & `object`
+
+## Type Declaration
+
+### attachments?
+
+> `readonly` `optional` **attachments?**: readonly [`TestEvidenceAttachment`](/api/testing/src/type-aliases/testevidenceattachment/)[]
+
+### diagnostics?
+
+> `readonly` `optional` **diagnostics?**: readonly [`TestEvidenceDiagnostic`](/api/testing/src/type-aliases/testevidencediagnostic/)[]
diff --git a/packages/docs/src/content/docs/api/testing/src/type-aliases/TestEvidenceReplay.md b/packages/docs/src/content/docs/api/testing/src/type-aliases/TestEvidenceReplay.md
new file mode 100644
index 000000000..c43624c26
--- /dev/null
+++ b/packages/docs/src/content/docs/api/testing/src/type-aliases/TestEvidenceReplay.md
@@ -0,0 +1,26 @@
+---
+editUrl: false
+next: false
+prev: false
+title: "TestEvidenceReplay"
+---
+
+> **TestEvidenceReplay** = `object`
+
+## Properties
+
+### command
+
+> `readonly` **command**: `string`
+
+***
+
+### seed?
+
+> `readonly` `optional` **seed?**: `string`
+
+***
+
+### virtualTime?
+
+> `readonly` `optional` **virtualTime?**: `string`
diff --git a/packages/docs/src/content/docs/api/testing/src/type-aliases/TestEvidenceReporterContext.md b/packages/docs/src/content/docs/api/testing/src/type-aliases/TestEvidenceReporterContext.md
new file mode 100644
index 000000000..903549420
--- /dev/null
+++ b/packages/docs/src/content/docs/api/testing/src/type-aliases/TestEvidenceReporterContext.md
@@ -0,0 +1,8 @@
+---
+editUrl: false
+next: false
+prev: false
+title: "TestEvidenceReporterContext"
+---
+
+> **TestEvidenceReporterContext** = \{ `diagnostic?`: \{ `duration`: `number`; `flaky`: `boolean`; `retryCount`: `number`; \}; `fullName`: `string`; `id`: `string`; `name`: `string`; `runner`: `"vitest"`; `source`: [`VitestTask`](/api/testing/src/type-aliases/vitesttask/); `state`: `"failed"` \| `"passed"` \| `"skipped"`; \} \| \{ `expectedStatus`: [`PlaywrightTestResult`](/api/testing/src/type-aliases/playwrighttestresult/)\[`"status"`\]; `id`: `string`; `results`: readonly [`PlaywrightTestResult`](/api/testing/src/type-aliases/playwrighttestresult/)[]; `runner`: `"playwright"`; `source`: \{ `results`: readonly [`PlaywrightTestResult`](/api/testing/src/type-aliases/playwrighttestresult/)[]; `test`: [`PlaywrightTestCase`](/api/testing/src/type-aliases/playwrighttestcase/); \}; `title`: `string`; `titlePath`: readonly `string`[]; \}
diff --git a/packages/docs/src/content/docs/api/testing/src/type-aliases/TestEvidenceReporterOptions.md b/packages/docs/src/content/docs/api/testing/src/type-aliases/TestEvidenceReporterOptions.md
new file mode 100644
index 000000000..7b649a41b
--- /dev/null
+++ b/packages/docs/src/content/docs/api/testing/src/type-aliases/TestEvidenceReporterOptions.md
@@ -0,0 +1,132 @@
+---
+editUrl: false
+next: false
+prev: false
+title: "TestEvidenceReporterOptions"
+---
+
+> **TestEvidenceReporterOptions** = `object`
+
+## Properties
+
+### attempts?
+
+> `readonly` `optional` **attempts?**: (`context`) => readonly [`TestEvidenceAttempt`](/api/testing/src/type-aliases/testevidenceattempt/)[]
+
+#### Parameters
+
+##### context
+
+[`TestEvidenceReporterContext`](/api/testing/src/type-aliases/testevidencereportercontext/)
+
+#### Returns
+
+readonly [`TestEvidenceAttempt`](/api/testing/src/type-aliases/testevidenceattempt/)[]
+
+***
+
+### diagnostics?
+
+> `readonly` `optional` **diagnostics?**: (`context`) => readonly [`TestEvidenceDiagnostic`](/api/testing/src/type-aliases/testevidencediagnostic/)[]
+
+#### Parameters
+
+##### context
+
+[`TestEvidenceReporterContext`](/api/testing/src/type-aliases/testevidencereportercontext/)
+
+#### Returns
+
+readonly [`TestEvidenceDiagnostic`](/api/testing/src/type-aliases/testevidencediagnostic/)[]
+
+***
+
+### fidelity
+
+> `readonly` **fidelity**: [`TestEvidenceFidelity`](/api/testing/src/type-aliases/testevidencefidelity/)
+
+***
+
+### intent?
+
+> `readonly` `optional` **intent?**: (`context`) => [`TestEvidenceIntent`](/api/testing/src/type-aliases/testevidenceintent/)
+
+#### Parameters
+
+##### context
+
+[`TestEvidenceReporterContext`](/api/testing/src/type-aliases/testevidencereportercontext/)
+
+#### Returns
+
+[`TestEvidenceIntent`](/api/testing/src/type-aliases/testevidenceintent/)
+
+***
+
+### observed?
+
+> `readonly` `optional` **observed?**: (`context`) => [`TestEvidenceObservation`](/api/testing/src/type-aliases/testevidenceobservation/)
+
+#### Parameters
+
+##### context
+
+[`TestEvidenceReporterContext`](/api/testing/src/type-aliases/testevidencereportercontext/)
+
+#### Returns
+
+[`TestEvidenceObservation`](/api/testing/src/type-aliases/testevidenceobservation/)
+
+***
+
+### outputDirectory?
+
+> `readonly` `optional` **outputDirectory?**: `string`
+
+***
+
+### replay?
+
+> `readonly` `optional` **replay?**: (`context`) => [`TestEvidenceReplay`](/api/testing/src/type-aliases/testevidencereplay/)
+
+#### Parameters
+
+##### context
+
+[`TestEvidenceReporterContext`](/api/testing/src/type-aliases/testevidencereportercontext/)
+
+#### Returns
+
+[`TestEvidenceReplay`](/api/testing/src/type-aliases/testevidencereplay/)
+
+***
+
+### resources?
+
+> `readonly` `optional` **resources?**: (`context`) => [`TestEvidenceResourceStatus`](/api/testing/src/type-aliases/testevidenceresourcestatus/)
+
+#### Parameters
+
+##### context
+
+[`TestEvidenceReporterContext`](/api/testing/src/type-aliases/testevidencereportercontext/)
+
+#### Returns
+
+[`TestEvidenceResourceStatus`](/api/testing/src/type-aliases/testevidenceresourcestatus/)
+
+***
+
+### write?
+
+> `readonly` `optional` **write?**: (`record`) => `Promise`\<`void`\> \| `void`
+
+#### Parameters
+
+##### record
+
+[`TestEvidenceRecord`](/api/testing/src/type-aliases/testevidencerecord/)
+
+#### Returns
+
+`Promise`\<`void`\> \| `void`
diff --git a/packages/docs/src/content/docs/api/testing/src/type-aliases/TestEvidenceResourceStatus.md b/packages/docs/src/content/docs/api/testing/src/type-aliases/TestEvidenceResourceStatus.md
new file mode 100644
index 000000000..2d1f72ff9
--- /dev/null
+++ b/packages/docs/src/content/docs/api/testing/src/type-aliases/TestEvidenceResourceStatus.md
@@ -0,0 +1,20 @@
+---
+editUrl: false
+next: false
+prev: false
+title: "TestEvidenceResourceStatus"
+---
+
+> **TestEvidenceResourceStatus** = `object`
+
+## Properties
+
+### leaks
+
+> `readonly` **leaks**: readonly `string`[]
+
+***
+
+### status
+
+> `readonly` **status**: `"clean"` \| `"leaked"` \| `"not-checked"`
diff --git a/packages/docs/src/content/docs/api/testing/src/type-aliases/TestEvidenceRunner.md b/packages/docs/src/content/docs/api/testing/src/type-aliases/TestEvidenceRunner.md
new file mode 100644
index 000000000..3b2610584
--- /dev/null
+++ b/packages/docs/src/content/docs/api/testing/src/type-aliases/TestEvidenceRunner.md
@@ -0,0 +1,8 @@
+---
+editUrl: false
+next: false
+prev: false
+title: "TestEvidenceRunner"
+---
+
+> **TestEvidenceRunner** = `"vitest"` \| `"playwright"` \| `"provider-conformance"` \| `"failure-drill"` \| `"generated-app"` \| `"runtime-smoke"` \| `"croco-verification"` \| `"custom"`
diff --git a/packages/docs/src/content/docs/api/testing/src/type-aliases/TestEvidenceTiming.md b/packages/docs/src/content/docs/api/testing/src/type-aliases/TestEvidenceTiming.md
new file mode 100644
index 000000000..41cf06514
--- /dev/null
+++ b/packages/docs/src/content/docs/api/testing/src/type-aliases/TestEvidenceTiming.md
@@ -0,0 +1,14 @@
+---
+editUrl: false
+next: false
+prev: false
+title: "TestEvidenceTiming"
+---
+
+> **TestEvidenceTiming** = `object`
+
+## Properties
+
+### durationMs?
+
+> `readonly` `optional` **durationMs?**: `number`
diff --git a/packages/docs/src/content/docs/api/testing/src/type-aliases/TestKernelEvidenceRecordInput.md b/packages/docs/src/content/docs/api/testing/src/type-aliases/TestKernelEvidenceRecordInput.md
new file mode 100644
index 000000000..cea792f23
--- /dev/null
+++ b/packages/docs/src/content/docs/api/testing/src/type-aliases/TestKernelEvidenceRecordInput.md
@@ -0,0 +1,18 @@
+---
+editUrl: false
+next: false
+prev: false
+title: "TestKernelEvidenceRecordInput"
+---
+
+> **TestKernelEvidenceRecordInput** = `Omit`\<[`TestEvidenceRecordInput`](/api/testing/src/type-aliases/testevidencerecordinput/), `"fidelity"`\> & `object`
+
+## Type Declaration
+
+### kernelFidelity
+
+> `readonly` **kernelFidelity**: [`TestKernelFidelity`](/api/testing/src/type-aliases/testkernelfidelity/)
+
+### resourceEvidence?
+
+> `readonly` `optional` **resourceEvidence?**: readonly [`TestKernelResourceEvidence`](/api/testing/src/type-aliases/testkernelresourceevidence/)[]
diff --git a/packages/docs/src/content/docs/api/testing/src/type-aliases/VitestTask.md b/packages/docs/src/content/docs/api/testing/src/type-aliases/VitestTask.md
new file mode 100644
index 000000000..7e26d5f6c
--- /dev/null
+++ b/packages/docs/src/content/docs/api/testing/src/type-aliases/VitestTask.md
@@ -0,0 +1,54 @@
+---
+editUrl: false
+next: false
+prev: false
+title: "VitestTask"
+---
+
+> **VitestTask** = `object`
+
+## Properties
+
+### diagnostic
+
+> `readonly` **diagnostic**: () => \{ `duration`: `number`; `flaky`: `boolean`; `retryCount`: `number`; \} \| `undefined`
+
+#### Returns
+
+\{ `duration`: `number`; `flaky`: `boolean`; `retryCount`: `number`; \} \| `undefined`
+
+***
+
+### fullName
+
+> `readonly` **fullName**: `string`
+
+***
+
+### id
+
+> `readonly` **id**: `string`
+
+***
+
+### name
+
+> `readonly` **name**: `string`
+
+***
+
+### result
+
+> `readonly` **result**: () => `object`
+
+#### Returns
+
+`object`
+
+##### errors?
+
+> `readonly` `optional` **errors?**: readonly `unknown`[]
+
+##### state
+
+> `readonly` **state**: `"failed"` \| `"passed"` \| `"pending"` \| `"skipped"`
diff --git a/packages/docs/src/content/docs/api/testing/src/variables/TEST_EVIDENCE_SCHEMA_VERSION.md b/packages/docs/src/content/docs/api/testing/src/variables/TEST_EVIDENCE_SCHEMA_VERSION.md
new file mode 100644
index 000000000..9a94036a1
--- /dev/null
+++ b/packages/docs/src/content/docs/api/testing/src/variables/TEST_EVIDENCE_SCHEMA_VERSION.md
@@ -0,0 +1,8 @@
+---
+editUrl: false
+next: false
+prev: false
+title: "TEST_EVIDENCE_SCHEMA_VERSION"
+---
+
+> `const` **TEST\_EVIDENCE\_SCHEMA\_VERSION**: `"croco.test-evidence/v1"`
diff --git a/packages/docs/src/content/docs/api/webhooks-core/src/classes/UnknownWebhookEventProblem.md b/packages/docs/src/content/docs/api/webhooks-core/src/classes/UnknownWebhookEventProblem.md
index bb556d46a..3995a888d 100644
--- a/packages/docs/src/content/docs/api/webhooks-core/src/classes/UnknownWebhookEventProblem.md
+++ b/packages/docs/src/content/docs/api/webhooks-core/src/classes/UnknownWebhookEventProblem.md
@@ -29,7 +29,7 @@ title: "UnknownWebhookEventProblem"
###### policy
-`"fail"` \| `"ignore"` \| `"report"`
+`"fail"` \| `"report"` \| `"ignore"`
###### provider
diff --git a/packages/docs/src/content/docs/en/reference/problem-recovery-cookbook.md b/packages/docs/src/content/docs/en/reference/problem-recovery-cookbook.md
index 670503da8..c17936012 100644
--- a/packages/docs/src/content/docs/en/reference/problem-recovery-cookbook.md
+++ b/packages/docs/src/content/docs/en/reference/problem-recovery-cookbook.md
@@ -7,7 +7,7 @@ description: Generated Croco Problem code registry with recovery and telemetry m
> Generated by `pnpm problem-registry:write`. Do not edit this file by hand.
-This cookbook documents 560 public Croco Problem codes. The deterministic JSON registry is generated at `docs/problem-code-registry.json`, and generated client union types are emitted at `packages/problems-core/src/generated/problem-code-registry.ts`.
+This cookbook documents 562 public Croco Problem codes. The deterministic JSON registry is generated at `docs/problem-code-registry.json`, and generated client union types are emitted at `packages/problems-core/src/generated/problem-code-registry.ts`.
## Index
@@ -159,6 +159,8 @@ This cookbook documents 560 public Croco Problem codes. The deterministic JSON r
| [`CROCO_HTTP_MIDDLEWARE_002`](#croco-http-middleware-002) | InternalServerError | 500 | not-retryable | operator-only | active | 1 |
| [`CROCO_HTTP_SECURITY_001`](#croco-http-security-001) | InternalServerError | 500 | not-retryable | public | active | 1 |
| [`CROCO_HTTP_SECURITY_002`](#croco-http-security-002) | BadRequest | 400 | not-retryable | public | active | 1 |
+| [`CROCO_TEST_EVIDENCE_CONTRACT_INVALID`](#croco-test-evidence-contract-invalid) | ValidationError | 422 | not-retryable | public | active | 1 |
+| [`CROCO_TEST_EVIDENCE_FIDELITY_UNSATISFIED`](#croco-test-evidence-fidelity-unsatisfied) | ValidationError | 422 | not-retryable | public | active | 1 |
| [`dataloader-core/batch-result-length-mismatch`](#dataloader-core-batch-result-length-mismatch) | InternalServerError | 500 | conditional | operator-only | active | 1 |
| [`diagnostics-core/duplicate-provider`](#diagnostics-core-duplicate-provider) | InternalServerError | 500 | conditional | operator-only | active | 1 |
| [`DUPLICATE_INVITATION`](#duplicate-invitation) | Conflict | 409 | conditional | safe-message | active | 1 |
@@ -3204,6 +3206,42 @@ Sources:
- `packages/transports-http/src/libs/middleware/SecurityMiddlewareMarker.ts:154:11` (problem-factory)
+
+
+## `CROCO_TEST_EVIDENCE_CONTRACT_INVALID`
+
+- Category: `ValidationError`
+- HTTP status: `422` Validation Error
+- Retryability: `not-retryable`
+- Redaction policy: `public`
+- Lifecycle: `active`
+- Cause: The request or generated contract failed schema or semantic validation.
+- User action: Fix the invalid fields and retry with schema-conformant input.
+- Operator action: Inspect schema diagnostics, generated contracts, and validation metadata.
+- Telemetry: `croco.problem.info` (info) with `problem.code`, `problem.category`, `problem.status`
+
+Sources:
+
+- `packages/testing/src/libs/test-evidence.mts:159:5` (problem-constructor)
+
+
+
+## `CROCO_TEST_EVIDENCE_FIDELITY_UNSATISFIED`
+
+- Category: `ValidationError`
+- HTTP status: `422` Validation Error
+- Retryability: `not-retryable`
+- Redaction policy: `public`
+- Lifecycle: `active`
+- Cause: The request or generated contract failed schema or semantic validation.
+- User action: Fix the invalid fields and retry with schema-conformant input.
+- Operator action: Inspect schema diagnostics, generated contracts, and validation metadata.
+- Telemetry: `croco.problem.info` (info) with `problem.code`, `problem.category`, `problem.status`
+
+Sources:
+
+- `packages/testing/src/libs/test-evidence.mts:173:5` (problem-constructor)
+
## `dataloader-core/batch-result-length-mismatch`
diff --git a/packages/problems-core/src/generated/problem-code-registry.ts b/packages/problems-core/src/generated/problem-code-registry.ts
index e8198d3df..6d4305cdc 100644
--- a/packages/problems-core/src/generated/problem-code-registry.ts
+++ b/packages/problems-core/src/generated/problem-code-registry.ts
@@ -3,7 +3,7 @@ import type { ProblemCodeRegistry } from "../libs/ProblemRegistry";
export const CROCO_PROBLEM_CODE_REGISTRY = {
version: "croco.problem-code-registry.v1",
- problemCount: 560,
+ problemCount: 562,
problems: [
{
code: "ACCESS_DENIED",
@@ -4542,6 +4542,67 @@ export const CROCO_PROBLEM_CODE_REGISTRY = {
},
],
},
+ {
+ code: "CROCO_TEST_EVIDENCE_CONTRACT_INVALID",
+ category: "ValidationError",
+ status: 422,
+ title: "Validation Error",
+ cookbookPath: "/reference/problem-recovery-cookbook/#croco-test-evidence-contract-invalid",
+ recovery: {
+ cause: "The request or generated contract failed schema or semantic validation.",
+ userAction: "Fix the invalid fields and retry with schema-conformant input.",
+ operatorAction: "Inspect schema diagnostics, generated contracts, and validation metadata.",
+ retryability: "not-retryable",
+ redactionPolicy: "public",
+ telemetry: {
+ eventName: "croco.problem.info",
+ severity: "info",
+ attributes: ["problem.code", "problem.category", "problem.status"],
+ },
+ },
+ lifecycle: {
+ status: "active",
+ },
+ sources: [
+ {
+ file: "packages/testing/src/libs/test-evidence.mts",
+ line: 159,
+ column: 5,
+ kind: "problem-constructor",
+ },
+ ],
+ },
+ {
+ code: "CROCO_TEST_EVIDENCE_FIDELITY_UNSATISFIED",
+ category: "ValidationError",
+ status: 422,
+ title: "Validation Error",
+ cookbookPath:
+ "/reference/problem-recovery-cookbook/#croco-test-evidence-fidelity-unsatisfied",
+ recovery: {
+ cause: "The request or generated contract failed schema or semantic validation.",
+ userAction: "Fix the invalid fields and retry with schema-conformant input.",
+ operatorAction: "Inspect schema diagnostics, generated contracts, and validation metadata.",
+ retryability: "not-retryable",
+ redactionPolicy: "public",
+ telemetry: {
+ eventName: "croco.problem.info",
+ severity: "info",
+ attributes: ["problem.code", "problem.category", "problem.status"],
+ },
+ },
+ lifecycle: {
+ status: "active",
+ },
+ sources: [
+ {
+ file: "packages/testing/src/libs/test-evidence.mts",
+ line: 173,
+ column: 5,
+ kind: "problem-constructor",
+ },
+ ],
+ },
{
code: "dataloader-core/batch-result-length-mismatch",
category: "InternalServerError",
diff --git a/packages/testing/README.md b/packages/testing/README.md
index c325ef06e..8d1ee953c 100644
--- a/packages/testing/README.md
+++ b/packages/testing/README.md
@@ -60,6 +60,10 @@ expect(test.fidelity).toEqual({
| `createQStashTriggerConformanceSuite(config)` | Reusable QStash trigger cases for schedule sync, webhook verification, dispatch, upstream diagnostics, and live-smoke gating. |
| `createDrizzleProviderConformanceSuite(config)` | Builds reusable Drizzle provider cases for schema, transaction, tenant, and error contracts. |
| `assertDrizzleProblem(operation, expected)` | Verifies Drizzle provider failures surface stable Croco Problem codes, categories, or status. |
+| `createTestEvidenceRecord(input)` | Builds validated `croco.test-evidence/v1` records and derives flaky outcomes from retained attempts. |
+| `createTestEvidenceBundle(records, artifactExists)` | Deterministically aggregates runner-neutral evidence and reports every missing required attachment. |
+| `CrocoVitestEvidenceReporter` | Adapts Vitest results and retries into the common evidence model without replacing Vitest. |
+| `CrocoPlaywrightEvidenceReporter` | Adapts Playwright attempts, traces, screenshots, and reports without replacing Playwright. |
## Isolation Contract
@@ -97,6 +101,42 @@ Call it before initializing a real telemetry SDK in the same test process. Repea
supported for isolated captures, including overlapping `capture.run()` blocks, but OpenTelemetry
does not expose a safe provider reset API after a different provider has already been installed.
+## Executable Test Evidence
+
+`croco.test-evidence/v1` is the stable, runner-neutral envelope for Vitest, Playwright, generated-app,
+provider-conformance, failure-drill, resource, and runtime-smoke results. The record schema is available from
+`@croco/testing/schemas/test-evidence-v1.json`, the aggregate schema from
+`@croco/testing/schemas/test-evidence-bundle-v1.json`, and the root entrypoint exports the matching TypeScript
+types and validation helpers.
+
+Every record keeps declared `intent.contractIds` separate from runtime `observed.contractIds`, route IDs,
+Problem codes, and event IDs. Declaring a contract never marks it observed. `attempts` is the source of truth
+for outcome classification: a failed attempt followed by a pass is always `flaky`, and the bundle is not
+successful until that flakiness is addressed. Seed, virtual time, and a replay command remain explicit.
+
+Fidelity records boot boundary, dependency fidelity, runtime, isolation, and validation independently.
+`assertTestEvidenceFidelity()` compares actual evidence with a required profile and rejects relabeling, so an
+isolated fake or rollback run cannot satisfy application, local-real, or commit evidence. Existing versioned
+provider and failure-drill reports remain intact as attachments with their original `schemaVersion` instead of
+being flattened into a lossy replacement format.
+
+Both reporter adapters accept optional context mappers for runtime observations, diagnostics, resources, and
+replay metadata. Import their directly loadable defaults from `@croco/testing/vitest-reporter` and
+`@croco/testing/playwright-reporter`. A custom `write(record)` callback may select another artifact layout;
+without one, reporters write deterministic JSON fragments to `ci-reports/test-evidence/records` (or the
+configured `outputDirectory`). `pnpm test-evidence:bundle --input ` consumes already-executed
+unified records or Croco verification reports, writes
+`ci-reports/test-evidence/bundle.json` and `summary.md`, and fails with explicit missing-artifact evidence.
+Verification profiles can pass that exact-head bundle back through `--test-evidence `; only passed
+`croco-verification` records are reused only when the bundle is passed and complete, the record is passed, its
+observed contract ID matches the check ID, `metadata.commitSha` matches the exact current head,
+`metadata.profile` matches the selected verification profile, `replay.command` exactly matches the command,
+and every required artifact is both attached to the record and still present. Stale, flaky, declared-only,
+unrelated, command-mismatched, wrong-profile, or incomplete records cause the command to execute normally.
+Sensitive keys used by the logger security policy (`authorization`, cookies, credentials, passwords, secrets,
+and tokens) and secret-like values are redacted before records are emitted; `assertNoTestEvidenceSecrets()`
+supports policy-owned secret samples for validation.
+
## Failure Drills
`createFailureDrillCatalog()` returns deterministic, zero-credential drills for provider timeout,
diff --git a/packages/testing/package.json b/packages/testing/package.json
index 45bc527f6..be729e26d 100644
--- a/packages/testing/package.json
+++ b/packages/testing/package.json
@@ -25,12 +25,24 @@
"import": "./dist/drizzle.mjs",
"require": "./dist/drizzle.js",
"types": "./dist/drizzle.d.ts"
- }
+ },
+ "./playwright-reporter": {
+ "types": "./dist/playwright-reporter.d.ts",
+ "import": "./dist/playwright-reporter.mjs",
+ "require": "./dist/playwright-reporter.js"
+ },
+ "./vitest-reporter": {
+ "types": "./dist/vitest-reporter.d.ts",
+ "import": "./dist/vitest-reporter.mjs",
+ "require": "./dist/vitest-reporter.js"
+ },
+ "./schemas/test-evidence-v1.json": "./dist/schemas/test-evidence-v1.schema.json",
+ "./schemas/test-evidence-bundle-v1.json": "./dist/schemas/test-evidence-bundle-v1.schema.json"
},
"access": "public"
},
"scripts": {
- "build": "tsup src/index.ts src/drizzle.ts --format esm,cjs --minify --clean --dts",
+ "build": "tsup src/index.ts src/drizzle.ts src/playwright-reporter.ts src/vitest-reporter.ts --format esm,cjs --minify --clean --dts && node scripts/copy-schemas.mjs",
"deploy": "pnpm run build && pnpm publish --no-git-checks",
"lint": "oxlint .",
"test": "vitest run",
diff --git a/packages/testing/schemas/test-evidence-bundle-v1.schema.json b/packages/testing/schemas/test-evidence-bundle-v1.schema.json
new file mode 100644
index 000000000..312724b97
--- /dev/null
+++ b/packages/testing/schemas/test-evidence-bundle-v1.schema.json
@@ -0,0 +1,41 @@
+{
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
+ "$id": "https://schemas.croco.dev/testing/test-evidence-bundle-v1.schema.json",
+ "title": "Croco executable test evidence bundle v1",
+ "type": "object",
+ "additionalProperties": false,
+ "required": ["schemaVersion", "missingArtifacts", "records", "status", "summary"],
+ "properties": {
+ "schemaVersion": { "const": "croco.test-evidence/v1" },
+ "missingArtifacts": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "additionalProperties": false,
+ "required": ["path", "recordId", "required"],
+ "properties": {
+ "path": { "type": "string", "minLength": 1 },
+ "recordId": { "type": "string", "minLength": 1 },
+ "required": { "const": true }
+ }
+ }
+ },
+ "records": {
+ "type": "array",
+ "items": { "$ref": "test-evidence-v1.schema.json" }
+ },
+ "status": { "enum": ["passed", "failed"] },
+ "summary": {
+ "type": "object",
+ "additionalProperties": false,
+ "required": ["failed", "flaky", "passed", "skipped", "total"],
+ "properties": {
+ "failed": { "type": "integer", "minimum": 0 },
+ "flaky": { "type": "integer", "minimum": 0 },
+ "passed": { "type": "integer", "minimum": 0 },
+ "skipped": { "type": "integer", "minimum": 0 },
+ "total": { "type": "integer", "minimum": 0 }
+ }
+ }
+ }
+}
diff --git a/packages/testing/schemas/test-evidence-v1.schema.json b/packages/testing/schemas/test-evidence-v1.schema.json
new file mode 100644
index 000000000..d66b2bdba
--- /dev/null
+++ b/packages/testing/schemas/test-evidence-v1.schema.json
@@ -0,0 +1,141 @@
+{
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
+ "$id": "https://schemas.croco.dev/testing/test-evidence-v1.schema.json",
+ "title": "Croco executable test evidence v1",
+ "type": "object",
+ "additionalProperties": false,
+ "required": [
+ "schemaVersion",
+ "id",
+ "runner",
+ "outcome",
+ "intent",
+ "observed",
+ "fidelity",
+ "replay",
+ "diagnostics",
+ "attempts",
+ "resources",
+ "attachments"
+ ],
+ "properties": {
+ "schemaVersion": { "const": "croco.test-evidence/v1" },
+ "id": { "type": "string", "minLength": 1 },
+ "runner": {
+ "enum": [
+ "vitest",
+ "playwright",
+ "provider-conformance",
+ "failure-drill",
+ "generated-app",
+ "runtime-smoke",
+ "croco-verification",
+ "custom"
+ ]
+ },
+ "outcome": { "enum": ["passed", "failed", "flaky", "skipped"] },
+ "intent": { "$ref": "#/$defs/intent" },
+ "observed": { "$ref": "#/$defs/observation" },
+ "fidelity": { "$ref": "#/$defs/fidelity" },
+ "replay": { "$ref": "#/$defs/replay" },
+ "diagnostics": { "type": "array", "items": { "$ref": "#/$defs/diagnostic" } },
+ "attempts": { "type": "array", "minItems": 1, "items": { "$ref": "#/$defs/attempt" } },
+ "resources": { "$ref": "#/$defs/resources" },
+ "attachments": { "type": "array", "items": { "$ref": "#/$defs/attachment" } },
+ "timing": {
+ "type": "object",
+ "additionalProperties": false,
+ "properties": { "durationMs": { "type": "number", "minimum": 0 } }
+ },
+ "metadata": { "type": "object" }
+ },
+ "$defs": {
+ "stringIds": {
+ "type": "array",
+ "uniqueItems": true,
+ "items": { "type": "string", "minLength": 1 }
+ },
+ "intent": {
+ "type": "object",
+ "additionalProperties": false,
+ "required": ["contractIds", "description"],
+ "properties": {
+ "contractIds": { "$ref": "#/$defs/stringIds" },
+ "description": { "type": "string", "minLength": 1 }
+ }
+ },
+ "observation": {
+ "type": "object",
+ "additionalProperties": false,
+ "required": ["contractIds"],
+ "properties": {
+ "contractIds": { "$ref": "#/$defs/stringIds" },
+ "eventIds": { "$ref": "#/$defs/stringIds" },
+ "problemCodes": { "$ref": "#/$defs/stringIds" },
+ "routeIds": { "$ref": "#/$defs/stringIds" }
+ }
+ },
+ "fidelity": {
+ "type": "object",
+ "additionalProperties": false,
+ "required": ["boot", "dependency", "isolation", "runtime", "validation"],
+ "properties": {
+ "boot": { "enum": ["isolated", "application", "adapter"] },
+ "dependency": { "enum": ["fake", "local-real", "remote-real"] },
+ "isolation": { "enum": ["fake", "rollback", "commit", "migration"] },
+ "runtime": { "enum": ["node", "lambda", "cloudflare", "browser"] },
+ "validation": { "enum": ["isolated", "production", "overridden"] }
+ }
+ },
+ "replay": {
+ "type": "object",
+ "additionalProperties": false,
+ "required": ["command"],
+ "properties": {
+ "command": { "type": "string", "minLength": 1 },
+ "seed": { "type": "string" },
+ "virtualTime": { "type": "string" }
+ }
+ },
+ "diagnostic": {
+ "type": "object",
+ "additionalProperties": false,
+ "required": ["code", "recoveryAction"],
+ "properties": {
+ "code": { "type": "string", "minLength": 1 },
+ "recoveryAction": { "type": "string", "minLength": 1 }
+ }
+ },
+ "attachment": {
+ "type": "object",
+ "additionalProperties": false,
+ "required": ["kind", "path"],
+ "properties": {
+ "kind": { "enum": ["contract", "coverage", "log", "report", "screenshot", "trace"] },
+ "path": { "type": "string", "minLength": 1 },
+ "schemaVersion": { "type": "string", "minLength": 1 }
+ }
+ },
+ "attempt": {
+ "type": "object",
+ "additionalProperties": false,
+ "required": ["attempt", "outcome"],
+ "properties": {
+ "attempt": { "type": "integer", "minimum": 1 },
+ "outcome": { "enum": ["passed", "failed", "skipped"] },
+ "durationMs": { "type": "number", "minimum": 0 },
+ "diagnostics": { "type": "array", "items": { "$ref": "#/$defs/diagnostic" } },
+ "attachments": { "type": "array", "items": { "$ref": "#/$defs/attachment" } }
+ }
+ },
+ "resources": {
+ "type": "object",
+ "additionalProperties": false,
+ "required": ["leaks", "status"],
+ "properties": {
+ "leaks": { "type": "array", "items": { "type": "string" } },
+ "status": { "enum": ["clean", "leaked", "not-checked"] }
+ }
+ }
+ }
+}
diff --git a/packages/testing/scripts/copy-schemas.mjs b/packages/testing/scripts/copy-schemas.mjs
new file mode 100644
index 000000000..ebe05b940
--- /dev/null
+++ b/packages/testing/scripts/copy-schemas.mjs
@@ -0,0 +1,12 @@
+import { copyFileSync, mkdirSync, readdirSync } from "node:fs";
+import { resolve } from "node:path";
+
+const sourceDirectory = resolve("schemas");
+const outputDirectory = resolve("dist", "schemas");
+
+mkdirSync(outputDirectory, { recursive: true });
+for (const fileName of readdirSync(sourceDirectory)
+ .filter((name) => name.endsWith(".json"))
+ .sort()) {
+ copyFileSync(resolve(sourceDirectory, fileName), resolve(outputDirectory, fileName));
+}
diff --git a/packages/testing/src/index.ts b/packages/testing/src/index.ts
index 37175d91a..ab1bd2826 100644
--- a/packages/testing/src/index.ts
+++ b/packages/testing/src/index.ts
@@ -1,3 +1,53 @@
+export {
+ assertNoTestEvidenceSecrets,
+ assertTestEvidenceBundle,
+ assertTestEvidenceFidelity,
+ assertTestEvidenceRecord,
+ classifyTestEvidenceOutcome,
+ createTestEvidenceBundle,
+ createTestKernelEvidenceRecord,
+ createTestEvidenceRecord,
+ redactTestEvidence,
+ renderTestEvidenceMarkdown,
+ serializeTestEvidence,
+ testEvidenceFidelityFromKernel,
+ TEST_EVIDENCE_SCHEMA_VERSION,
+ TestEvidenceContractError,
+ TestEvidenceFidelityError,
+ type TestEvidenceArtifactProbe,
+ type TestEvidenceAttachment,
+ type TestEvidenceAttempt,
+ type TestEvidenceAttemptOutcome,
+ type TestEvidenceBundle,
+ type TestEvidenceDiagnostic,
+ type TestEvidenceFidelity,
+ type TestEvidenceFidelityRequirement,
+ type TestEvidenceIntent,
+ type TestEvidenceJsonValue,
+ type TestEvidenceMissingArtifact,
+ type TestEvidenceObservation,
+ type TestEvidenceOutcome,
+ type TestEvidenceRecord,
+ type TestEvidenceRecordInput,
+ type TestEvidenceReplay,
+ type TestEvidenceResourceStatus,
+ type TestEvidenceRunner,
+ type TestEvidenceTiming,
+ type TestKernelEvidenceRecordInput,
+} from "./libs/test-evidence.mjs";
+export {
+ CrocoPlaywrightEvidenceReporter,
+ CrocoVitestEvidenceReporter,
+ type PlaywrightTestCase,
+ type PlaywrightTestResult,
+ type TestEvidenceReporterOptions,
+ type TestEvidenceReporterContext,
+ type VitestTask,
+} from "./libs/test-evidence-reporters";
+export {
+ createTestEvidenceFileWriter,
+ type TestEvidenceFileWriterOptions,
+} from "./libs/test-evidence-files";
export {
assertOpenAPIRoute,
assertProblemResponse,
diff --git a/packages/testing/src/libs/test-evidence-files.ts b/packages/testing/src/libs/test-evidence-files.ts
new file mode 100644
index 000000000..cbb448040
--- /dev/null
+++ b/packages/testing/src/libs/test-evidence-files.ts
@@ -0,0 +1,45 @@
+import { createHash } from "node:crypto";
+import { mkdirSync, readFileSync, writeFileSync } from "node:fs";
+import { resolve } from "node:path";
+
+import { serializeTestEvidence, TestEvidenceContractError } from "./test-evidence.mjs";
+import type { TestEvidenceRecord } from "./test-evidence.mjs";
+
+export type TestEvidenceFileWriterOptions = {
+ readonly outputDirectory?: string;
+};
+
+export function createTestEvidenceFileWriter(
+ options: TestEvidenceFileWriterOptions = {},
+): (record: TestEvidenceRecord) => void {
+ const outputDirectory = resolve(
+ options.outputDirectory ??
+ process.env["CROCO_TEST_EVIDENCE_DIR"] ??
+ "ci-reports/test-evidence/records",
+ );
+ return (record) => {
+ mkdirSync(outputDirectory, { recursive: true });
+ const identity = `${record.runner}\u0000${record.id}\u0000${record.replay.command}`;
+ const slug =
+ `${record.runner}-${record.id}`.replace(/[^a-zA-Z0-9._-]+/g, "-").replace(/^-|-$/g, "") ||
+ "evidence";
+ const digest = createHash("sha256").update(identity).digest("hex").slice(0, 12);
+ const outputPath = resolve(outputDirectory, `${slug}-${digest}.json`);
+ const serialized = serializeTestEvidence(record);
+ try {
+ writeFileSync(outputPath, serialized, { flag: "wx" });
+ } catch (error) {
+ if (!isAlreadyExistsError(error)) throw error;
+ if (readFileSync(outputPath, "utf8") !== serialized) {
+ throw new TestEvidenceContractError(
+ `Evidence fragment collision at '${outputPath}' for '${record.id}'. Use unique runner IDs or replay commands.`,
+ error,
+ );
+ }
+ }
+ };
+}
+
+function isAlreadyExistsError(error: unknown): error is NodeJS.ErrnoException {
+ return error instanceof Error && "code" in error && error.code === "EEXIST";
+}
diff --git a/packages/testing/src/libs/test-evidence-reporters.ts b/packages/testing/src/libs/test-evidence-reporters.ts
new file mode 100644
index 000000000..7b38ef835
--- /dev/null
+++ b/packages/testing/src/libs/test-evidence-reporters.ts
@@ -0,0 +1,271 @@
+import { createTestEvidenceRecord } from "./test-evidence.mjs";
+import {
+ type TestEvidenceAttachment,
+ type TestEvidenceAttempt,
+ type TestEvidenceFidelity,
+ type TestEvidenceIntent,
+ type TestEvidenceDiagnostic,
+ type TestEvidenceObservation,
+ type TestEvidenceRecord,
+ type TestEvidenceReplay,
+ type TestEvidenceResourceStatus,
+} from "./test-evidence.mjs";
+import { createTestEvidenceFileWriter } from "./test-evidence-files";
+
+export type TestEvidenceReporterContext =
+ | {
+ readonly diagnostic?: {
+ readonly duration: number;
+ readonly flaky: boolean;
+ readonly retryCount: number;
+ };
+ readonly fullName: string;
+ readonly id: string;
+ readonly name: string;
+ readonly runner: "vitest";
+ readonly source: VitestTask;
+ readonly state: "failed" | "passed" | "skipped";
+ }
+ | {
+ readonly expectedStatus: PlaywrightTestResult["status"];
+ readonly id: string;
+ readonly results: readonly PlaywrightTestResult[];
+ readonly runner: "playwright";
+ readonly source: {
+ readonly results: readonly PlaywrightTestResult[];
+ readonly test: PlaywrightTestCase;
+ };
+ readonly title: string;
+ readonly titlePath: readonly string[];
+ };
+
+export type TestEvidenceReporterOptions = {
+ readonly fidelity: TestEvidenceFidelity;
+ readonly attempts?: (context: TestEvidenceReporterContext) => readonly TestEvidenceAttempt[];
+ readonly diagnostics?: (
+ context: TestEvidenceReporterContext,
+ ) => readonly TestEvidenceDiagnostic[];
+ readonly intent?: (context: TestEvidenceReporterContext) => TestEvidenceIntent;
+ readonly observed?: (context: TestEvidenceReporterContext) => TestEvidenceObservation;
+ readonly outputDirectory?: string;
+ readonly replay?: (context: TestEvidenceReporterContext) => TestEvidenceReplay;
+ readonly resources?: (context: TestEvidenceReporterContext) => TestEvidenceResourceStatus;
+ readonly write?: (record: TestEvidenceRecord) => Promise | void;
+};
+
+export type VitestTask = {
+ readonly id: string;
+ readonly name: string;
+ readonly fullName: string;
+ readonly diagnostic: () =>
+ | {
+ readonly duration: number;
+ readonly flaky: boolean;
+ readonly retryCount: number;
+ }
+ | undefined;
+ readonly result: () => {
+ readonly errors?: readonly unknown[];
+ readonly state: "failed" | "passed" | "pending" | "skipped";
+ };
+};
+
+export type PlaywrightTestCase = {
+ readonly expectedStatus?: PlaywrightTestResult["status"];
+ readonly id: string;
+ readonly title: string;
+ readonly titlePath?: () => readonly string[];
+};
+
+export type PlaywrightTestResult = {
+ readonly attachments?: readonly { readonly name: string; readonly path?: string }[];
+ readonly duration: number;
+ readonly error?: unknown;
+ readonly errors?: readonly unknown[];
+ readonly retry?: number;
+ readonly status: "failed" | "interrupted" | "passed" | "skipped" | "timedOut";
+};
+
+export class CrocoVitestEvidenceReporter {
+ private readonly write: (record: TestEvidenceRecord) => Promise | void;
+
+ constructor(private readonly options: TestEvidenceReporterOptions) {
+ this.write = options.write ?? createTestEvidenceFileWriter(options);
+ }
+
+ async onTestCaseResult(task: VitestTask): Promise {
+ const result = task.result();
+ if (result.state === "pending") return;
+ const diagnostic = task.diagnostic();
+ const attempts = (diagnostic?.retryCount ?? 0) + 1;
+ const finalOutcome =
+ result.state === "passed" ? "passed" : result.state === "failed" ? "failed" : "skipped";
+ const context: TestEvidenceReporterContext = {
+ ...(diagnostic ? { diagnostic } : {}),
+ fullName: task.fullName,
+ id: task.id,
+ name: task.name,
+ runner: "vitest",
+ source: task,
+ state: finalOutcome,
+ };
+ await this.write(
+ createTestEvidenceRecord({
+ id: task.id,
+ runner: "vitest",
+ fidelity: this.options.fidelity,
+ intent: this.options.intent?.(context) ?? {
+ contractIds: [],
+ description: task.fullName,
+ },
+ observed: this.options.observed?.(context) ?? { contractIds: [] },
+ replay: this.options.replay?.(context) ?? {
+ command: `pnpm vitest run -t ${JSON.stringify(task.fullName)}`,
+ },
+ diagnostics:
+ this.options.diagnostics?.(context) ??
+ failureDiagnostics(
+ result.state === "failed" ? (result.errors ?? []) : [],
+ "CROCO_VITEST_TEST_FAILED",
+ `Vitest test '${task.fullName}' failed.`,
+ result.state === "failed",
+ ),
+ resources: this.options.resources?.(context) ?? { leaks: [], status: "not-checked" },
+ attempts:
+ this.options.attempts?.(context) ??
+ Array.from({ length: attempts }, (_, index) => ({
+ attempt: index + 1,
+ outcome: index + 1 === attempts ? finalOutcome : "failed",
+ ...(index + 1 === attempts && diagnostic ? { durationMs: diagnostic.duration } : {}),
+ })),
+ }),
+ );
+ }
+}
+
+export class CrocoPlaywrightEvidenceReporter {
+ private readonly tests = new Map<
+ string,
+ { readonly attempts: PlaywrightTestResult[]; readonly test: PlaywrightTestCase }
+ >();
+
+ private readonly writeRecord: (record: TestEvidenceRecord) => Promise | void;
+
+ constructor(private readonly options: TestEvidenceReporterOptions) {
+ this.writeRecord = options.write ?? createTestEvidenceFileWriter(options);
+ }
+
+ onTestEnd(test: PlaywrightTestCase, result: PlaywrightTestResult): void {
+ const current = this.tests.get(test.id);
+ this.tests.set(test.id, { test, attempts: [...(current?.attempts ?? []), result] });
+ }
+
+ async onEnd(): Promise {
+ for (const { test, attempts } of [...this.tests.values()].sort((left, right) =>
+ left.test.id < right.test.id ? -1 : left.test.id > right.test.id ? 1 : 0,
+ )) {
+ await this.write(test, attempts);
+ }
+ }
+
+ private async write(
+ test: PlaywrightTestCase,
+ results: readonly PlaywrightTestResult[],
+ ): Promise {
+ const chronologicalResults = results
+ .map((result, index) => ({ attempt: (result.retry ?? index) + 1, result }))
+ .sort((left, right) => left.attempt - right.attempt);
+ const outcome = (result: PlaywrightTestResult): TestEvidenceAttempt["outcome"] =>
+ playwrightOutcome(result, test.expectedStatus ?? "passed");
+ const failed = (result: PlaywrightTestResult): boolean => outcome(result) === "failed";
+ const attachments = chronologicalResults.flatMap(({ result }) => playwrightAttachments(result));
+ const context: TestEvidenceReporterContext = {
+ expectedStatus: test.expectedStatus ?? "passed",
+ id: test.id,
+ results,
+ runner: "playwright",
+ source: { test, results },
+ title: test.title,
+ titlePath: test.titlePath?.() ?? [test.title],
+ };
+ await this.writeRecord(
+ createTestEvidenceRecord({
+ id: test.id,
+ runner: "playwright",
+ fidelity: this.options.fidelity,
+ intent: this.options.intent?.(context) ?? { contractIds: [], description: test.title },
+ observed: this.options.observed?.(context) ?? { contractIds: [] },
+ replay: this.options.replay?.(context) ?? {
+ command: `pnpm playwright test --grep ${JSON.stringify(test.title)}`,
+ },
+ diagnostics:
+ this.options.diagnostics?.(context) ??
+ failureDiagnostics(
+ chronologicalResults
+ .filter(({ result }) => failed(result))
+ .map(({ result }) => result)
+ .flatMap((result) =>
+ result.errors && result.errors.length > 0
+ ? result.errors
+ : result.error === undefined
+ ? []
+ : [result.error],
+ ),
+ "CROCO_PLAYWRIGHT_TEST_FAILED",
+ `Playwright test '${test.title}' failed.`,
+ chronologicalResults.some(({ result }) => failed(result)),
+ ),
+ resources: this.options.resources?.(context) ?? { leaks: [], status: "not-checked" },
+ attachments,
+ attempts:
+ this.options.attempts?.(context) ??
+ chronologicalResults.map(({ attempt, result }) => ({
+ attempt,
+ attachments: playwrightAttachments(result),
+ durationMs: result.duration,
+ outcome: outcome(result),
+ })),
+ }),
+ );
+ }
+}
+
+function playwrightOutcome(
+ result: PlaywrightTestResult,
+ expectedStatus: PlaywrightTestResult["status"],
+): TestEvidenceAttempt["outcome"] {
+ if (result.status === "skipped") return "skipped";
+ return result.status === expectedStatus ? "passed" : "failed";
+}
+
+function playwrightAttachments(result: PlaywrightTestResult): TestEvidenceAttachment[] {
+ return (result.attachments ?? []).flatMap(({ name, path }) =>
+ path ? [{ kind: attachmentKind(name), path }] : [],
+ );
+}
+
+function attachmentKind(name: string): TestEvidenceAttachment["kind"] {
+ const normalized = name.toLowerCase();
+ if (normalized.includes("screenshot")) return "screenshot";
+ if (normalized.includes("trace")) return "trace";
+ if (normalized.includes("log")) return "log";
+ return "report";
+}
+
+function failureDiagnostics(
+ errors: readonly unknown[],
+ code: string,
+ fallback: string,
+ failed: boolean,
+): readonly TestEvidenceDiagnostic[] {
+ const messages = errors
+ .filter((error) => error !== undefined)
+ .map((error) => (error instanceof Error ? error.message : String(error)));
+ if (messages.length === 0) {
+ return failed ? [{ code, recoveryAction: `${fallback} Inspect the runner output.` }] : [];
+ }
+ return messages.map((message) => ({
+ code,
+ recoveryAction: `${fallback} Inspect the runner failure: ${message}`,
+ }));
+}
diff --git a/packages/testing/src/libs/test-evidence.mts b/packages/testing/src/libs/test-evidence.mts
new file mode 100644
index 000000000..734f2f7d4
--- /dev/null
+++ b/packages/testing/src/libs/test-evidence.mts
@@ -0,0 +1,942 @@
+import { Problem, ProblemCategory } from "@croco/problems-core";
+
+import type { TestKernelFidelity, TestKernelResourceEvidence } from "./TestKernel";
+
+export const TEST_EVIDENCE_SCHEMA_VERSION = "croco.test-evidence/v1" as const;
+
+export type TestEvidenceJsonValue =
+ | boolean
+ | number
+ | string
+ | null
+ | readonly TestEvidenceJsonValue[]
+ | { readonly [key: string]: TestEvidenceJsonValue };
+
+export type TestEvidenceOutcome = "passed" | "failed" | "flaky" | "skipped";
+export type TestEvidenceAttemptOutcome = Exclude;
+export type TestEvidenceRunner =
+ | "vitest"
+ | "playwright"
+ | "provider-conformance"
+ | "failure-drill"
+ | "generated-app"
+ | "runtime-smoke"
+ | "croco-verification"
+ | "custom";
+
+export type TestEvidenceFidelity = {
+ readonly boot: "isolated" | "application" | "adapter";
+ readonly dependency: "fake" | "local-real" | "remote-real";
+ readonly isolation: "fake" | "rollback" | "commit" | "migration";
+ readonly runtime: "node" | "lambda" | "cloudflare" | "browser";
+ readonly validation: "isolated" | "production" | "overridden";
+};
+
+export type TestEvidenceIntent = {
+ readonly contractIds: readonly string[];
+ readonly description: string;
+};
+
+export type TestEvidenceObservation = {
+ readonly contractIds: readonly string[];
+ readonly eventIds?: readonly string[];
+ readonly problemCodes?: readonly string[];
+ readonly routeIds?: readonly string[];
+};
+
+export type TestEvidenceReplay = {
+ readonly command: string;
+ readonly seed?: string;
+ readonly virtualTime?: string;
+};
+
+export type TestEvidenceDiagnostic = {
+ readonly code: string;
+ readonly recoveryAction: string;
+};
+
+export type TestEvidenceAttachment = {
+ readonly kind: "contract" | "coverage" | "log" | "report" | "screenshot" | "trace";
+ readonly path: string;
+ readonly schemaVersion?: string;
+};
+
+export type TestEvidenceAttempt = {
+ readonly attachments?: readonly TestEvidenceAttachment[];
+ readonly attempt: number;
+ readonly diagnostics?: readonly TestEvidenceDiagnostic[];
+ readonly durationMs?: number;
+ readonly outcome: TestEvidenceAttemptOutcome;
+};
+
+export type TestEvidenceResourceStatus = {
+ readonly leaks: readonly string[];
+ readonly status: "clean" | "leaked" | "not-checked";
+};
+
+export type TestEvidenceTiming = {
+ readonly durationMs?: number;
+};
+
+export type TestEvidenceRecord = {
+ readonly schemaVersion: typeof TEST_EVIDENCE_SCHEMA_VERSION;
+ readonly id: string;
+ readonly runner: TestEvidenceRunner;
+ readonly outcome: TestEvidenceOutcome;
+ readonly intent: TestEvidenceIntent;
+ readonly observed: TestEvidenceObservation;
+ readonly fidelity: TestEvidenceFidelity;
+ readonly replay: TestEvidenceReplay;
+ readonly diagnostics: readonly TestEvidenceDiagnostic[];
+ readonly attempts: readonly TestEvidenceAttempt[];
+ readonly resources: TestEvidenceResourceStatus;
+ readonly attachments: readonly TestEvidenceAttachment[];
+ readonly timing?: TestEvidenceTiming;
+ readonly metadata?: Readonly>;
+};
+
+export type TestEvidenceRecordInput = Omit<
+ TestEvidenceRecord,
+ "schemaVersion" | "outcome" | "diagnostics" | "attachments"
+> & {
+ readonly attachments?: readonly TestEvidenceAttachment[];
+ readonly diagnostics?: readonly TestEvidenceDiagnostic[];
+};
+
+export type TestKernelEvidenceRecordInput = Omit & {
+ readonly kernelFidelity: TestKernelFidelity;
+ readonly resourceEvidence?: readonly TestKernelResourceEvidence[];
+};
+
+export type TestEvidenceBundle = {
+ readonly schemaVersion: typeof TEST_EVIDENCE_SCHEMA_VERSION;
+ readonly missingArtifacts: readonly TestEvidenceMissingArtifact[];
+ readonly records: readonly TestEvidenceRecord[];
+ readonly status: "passed" | "failed";
+ readonly summary: {
+ readonly failed: number;
+ readonly flaky: number;
+ readonly passed: number;
+ readonly skipped: number;
+ readonly total: number;
+ };
+};
+
+export type TestEvidenceMissingArtifact = {
+ readonly path: string;
+ readonly recordId: string;
+ readonly required: true;
+};
+
+export type TestEvidenceArtifactProbe = (path: string) => boolean;
+
+export type TestEvidenceFidelityRequirement = Partial;
+
+const SENSITIVE_KEY =
+ /(?:authorization|cookie|credential|password|secret|token|api[-_]?key|private[-_]?key|access[-_]?key|access[-_]?token|connection[-_]?string|dsn)/i;
+const SECRET_LIKE_VALUE =
+ /(?:(?:authorization|cookie|credential|password|secret|token|api[-_]?key|private[-_]?key|access[-_]?key|access[-_]?token|connection[-_]?string|dsn)\s*[:=]\s*[^\s,;&]+|\b(?:bearer|basic|digest|apikey)\s+[^\s,;]+)/gi;
+const STRUCTURED_SECRET_VALUE =
+ /(?:-----BEGIN [A-Z ]*PRIVATE KEY-----[\s\S]*?-----END [A-Z ]*PRIVATE KEY-----|\bgithub_pat_[a-zA-Z0-9_]{20,}\b|\bgh[pousr]_[a-zA-Z0-9]{20,}\b|\bAKIA[A-Z0-9]{16}\b|\beyJ[a-zA-Z0-9_-]+\.eyJ[a-zA-Z0-9_-]+\.[a-zA-Z0-9_-]+\b)/g;
+const REDACTED = "[Redacted]";
+const ATTACHMENT_KINDS = ["contract", "coverage", "log", "report", "screenshot", "trace"] as const;
+const ATTEMPT_OUTCOMES = ["passed", "failed", "skipped"] as const;
+const RUNNERS = [
+ "vitest",
+ "playwright",
+ "provider-conformance",
+ "failure-drill",
+ "generated-app",
+ "runtime-smoke",
+ "croco-verification",
+ "custom",
+] as const;
+
+export class TestEvidenceContractError extends Problem {
+ readonly code = "CROCO_TEST_EVIDENCE_CONTRACT_INVALID";
+
+ constructor(detail: string, cause?: unknown) {
+ super(
+ "CROCO_TEST_EVIDENCE_CONTRACT_INVALID",
+ ProblemCategory.ValidationError,
+ `CROCO_TEST_EVIDENCE_CONTRACT_INVALID: ${detail}`,
+ cause === undefined ? undefined : { cause: toError(cause) },
+ );
+ this.name = "TestEvidenceContractError";
+ }
+}
+
+export class TestEvidenceFidelityError extends Problem {
+ readonly code = "CROCO_TEST_EVIDENCE_FIDELITY_UNSATISFIED";
+
+ constructor(record: TestEvidenceRecord, field: keyof TestEvidenceFidelity, expected: string) {
+ super(
+ "CROCO_TEST_EVIDENCE_FIDELITY_UNSATISFIED",
+ ProblemCategory.ValidationError,
+ `CROCO_TEST_EVIDENCE_FIDELITY_UNSATISFIED: Evidence '${record.id}' observed ${field} '${record.fidelity[field]}', not required '${expected}'. Rerun at the required fidelity instead of relabeling the evidence.`,
+ );
+ this.name = "TestEvidenceFidelityError";
+ }
+}
+
+export function createTestEvidenceRecord(input: TestEvidenceRecordInput): TestEvidenceRecord {
+ if (!isRecord(input)) {
+ throw new TestEvidenceContractError("Evidence record input must be an object.");
+ }
+ assertNonEmpty(input.id, "Evidence id");
+ if (!isRecord(input.intent)) {
+ throw new TestEvidenceContractError(`Evidence '${String(input.id)}' intent must be an object.`);
+ }
+ if (!isRecord(input.observed)) {
+ throw new TestEvidenceContractError(
+ `Evidence '${String(input.id)}' observation must be an object.`,
+ );
+ }
+ if (!isRecord(input.replay)) {
+ throw new TestEvidenceContractError(`Evidence '${String(input.id)}' replay must be an object.`);
+ }
+ if (!Array.isArray(input.attempts)) {
+ throw new TestEvidenceContractError(
+ `Evidence '${String(input.id)}' attempts must be an array.`,
+ );
+ }
+ assertNonEmpty(input.intent.description, `Evidence '${input.id}' intent description`);
+ assertNonEmpty(input.replay.command, `Evidence '${input.id}' replay command`);
+ assertStableIds(input.intent.contractIds, `Evidence '${input.id}' declared contract`);
+ assertStableIds(input.observed.contractIds, `Evidence '${input.id}' observed contract`);
+ const attempts = [...input.attempts].sort((left, right) => left.attempt - right.attempt);
+ assertAttempts(input.id, attempts);
+ const outcome = classifyTestEvidenceOutcome(attempts);
+ const diagnostics = input.diagnostics ?? attempts.flatMap((attempt) => attempt.diagnostics ?? []);
+ const attachments = input.attachments ?? attempts.flatMap((attempt) => attempt.attachments ?? []);
+ const record = redactTestEvidence(
+ normalizeTestEvidenceRecord({
+ ...input,
+ schemaVersion: TEST_EVIDENCE_SCHEMA_VERSION,
+ outcome,
+ diagnostics,
+ attachments,
+ attempts,
+ }),
+ );
+ assertTestEvidenceRecord(record);
+ return deepFreeze(record);
+}
+
+export function createTestKernelEvidenceRecord(
+ input: TestKernelEvidenceRecordInput,
+): TestEvidenceRecord {
+ const { kernelFidelity, resourceEvidence = [], ...record } = input;
+ return createTestEvidenceRecord({
+ ...record,
+ fidelity: testEvidenceFidelityFromKernel(kernelFidelity, resourceEvidence),
+ });
+}
+
+export function testEvidenceFidelityFromKernel(
+ kernel: TestKernelFidelity,
+ resources: readonly TestKernelResourceEvidence[] = [],
+): TestEvidenceFidelity {
+ const modes = resources.map(({ fidelity }) => fidelity.mode);
+ if (new Set(modes).size > 1) {
+ throw new TestEvidenceContractError(
+ `TestKernel resource evidence mixes isolation modes (${sortStrings(modes).join(", ")}); emit one evidence record per fidelity instead of promoting the combined result.`,
+ );
+ }
+ const isolation = modes.includes("migration")
+ ? "migration"
+ : modes.includes("commit")
+ ? "commit"
+ : modes.includes("rollback")
+ ? "rollback"
+ : "fake";
+ return {
+ boot: kernel.boot,
+ dependency: resources.length > 0 ? "local-real" : "fake",
+ isolation,
+ runtime: kernel.runtime,
+ validation: kernel.validation,
+ };
+}
+
+export function classifyTestEvidenceOutcome(
+ attempts: readonly TestEvidenceAttempt[],
+): TestEvidenceOutcome {
+ if (attempts.length === 0) {
+ throw new TestEvidenceContractError("Evidence must retain at least one attempt.");
+ }
+ const chronologicalAttempts = [...attempts].sort((left, right) => left.attempt - right.attempt);
+ const finalAttempt = chronologicalAttempts.at(-1);
+ if (!finalAttempt) {
+ throw new TestEvidenceContractError("Evidence final attempt is missing.");
+ }
+ if (
+ finalAttempt.outcome === "passed" &&
+ chronologicalAttempts.some(({ outcome }) => outcome === "failed")
+ ) {
+ return "flaky";
+ }
+ return finalAttempt.outcome;
+}
+
+export function assertTestEvidenceRecord(value: unknown): asserts value is TestEvidenceRecord {
+ if (!isRecord(value)) {
+ throw new TestEvidenceContractError("Evidence record must be an object.");
+ }
+ assertAllowedKeys(
+ value,
+ [
+ "schemaVersion",
+ "id",
+ "runner",
+ "outcome",
+ "intent",
+ "observed",
+ "fidelity",
+ "replay",
+ "diagnostics",
+ "attempts",
+ "resources",
+ "attachments",
+ "timing",
+ "metadata",
+ ],
+ "Evidence record",
+ );
+ const record = value as Partial;
+ if (record.schemaVersion !== TEST_EVIDENCE_SCHEMA_VERSION) {
+ throw new TestEvidenceContractError(
+ `Expected schemaVersion '${TEST_EVIDENCE_SCHEMA_VERSION}'.`,
+ );
+ }
+ assertNonEmpty(record.id, "Evidence id");
+ assertEnum(record.runner, RUNNERS, `Evidence '${record.id}' runner`);
+ const attempts = Array.isArray(record.attempts)
+ ? [...record.attempts].sort((left, right) => {
+ const leftAttempt = isRecord(left) ? left["attempt"] : undefined;
+ const rightAttempt = isRecord(right) ? right["attempt"] : undefined;
+ return typeof leftAttempt === "number" && typeof rightAttempt === "number"
+ ? leftAttempt - rightAttempt
+ : 0;
+ })
+ : record.attempts;
+ assertAttempts(record.id, attempts);
+ const classified = classifyTestEvidenceOutcome(attempts);
+ if (record.outcome !== classified) {
+ throw new TestEvidenceContractError(
+ `Evidence '${record.id}' outcome '${String(record.outcome)}' does not match attempt-derived '${classified}'.`,
+ );
+ }
+ const intent = record.intent;
+ const observed = record.observed;
+ if (!isRecord(intent) || !isRecord(observed)) {
+ throw new TestEvidenceContractError(
+ `Evidence '${record.id}' must keep intent and observed contracts as separate objects.`,
+ );
+ }
+ assertAllowedKeys(intent, ["contractIds", "description"], `Evidence '${record.id}' intent`);
+ assertAllowedKeys(
+ observed,
+ ["contractIds", "eventIds", "problemCodes", "routeIds"],
+ `Evidence '${record.id}' observation`,
+ );
+ if (intent === observed) {
+ throw new TestEvidenceContractError(
+ `Evidence '${record.id}' cannot reuse its declared intent object as runtime observation.`,
+ );
+ }
+ const typedIntent = intent as Partial;
+ const typedObserved = observed as Partial;
+ assertNonEmpty(typedIntent.description, `Evidence '${record.id}' intent description`);
+ assertStringIds(typedIntent.contractIds, `Evidence '${record.id}' declared contract`);
+ assertStringIds(typedObserved.contractIds, `Evidence '${record.id}' observed contract`);
+ for (const field of ["eventIds", "problemCodes", "routeIds"] as const) {
+ if (typedObserved[field] !== undefined) {
+ assertStringIds(typedObserved[field], `Evidence '${record.id}' observed ${field}`);
+ }
+ }
+ assertFidelity(record.id, record.fidelity);
+ if (!isRecord(record.replay)) {
+ throw new TestEvidenceContractError(`Evidence '${record.id}' replay must be an object.`);
+ }
+ assertAllowedKeys(
+ record.replay,
+ ["command", "seed", "virtualTime"],
+ `Evidence '${record.id}' replay`,
+ );
+ const replay = record.replay as Partial;
+ assertNonEmpty(replay.command, `Evidence '${record.id}' replay command`);
+ for (const field of ["seed", "virtualTime"] as const) {
+ if (replay[field] !== undefined && typeof replay[field] !== "string") {
+ throw new TestEvidenceContractError(
+ `Evidence '${record.id}' replay ${field} must be a string.`,
+ );
+ }
+ }
+ assertDiagnostics(record.id, record.diagnostics, "diagnostics");
+ assertAttachments(record.id, record.attachments, "attachments");
+ assertResources(record.id, record.resources);
+ if (record.timing !== undefined) {
+ if (!isRecord(record.timing)) {
+ throw new TestEvidenceContractError(`Evidence '${record.id}' timing must be an object.`);
+ }
+ assertAllowedKeys(record.timing, ["durationMs"], `Evidence '${record.id}' timing`);
+ const timing = record.timing as Partial;
+ assertDuration(record.id, timing.durationMs, "timing");
+ }
+ if (record.metadata !== undefined) {
+ if (!isRecord(record.metadata) || !isJsonValue(record.metadata)) {
+ throw new TestEvidenceContractError(`Evidence '${record.id}' metadata must be JSON-safe.`);
+ }
+ }
+}
+
+export function assertTestEvidenceBundle(value: unknown): asserts value is TestEvidenceBundle {
+ if (!isRecord(value)) {
+ throw new TestEvidenceContractError("Evidence bundle must be an object.");
+ }
+ assertAllowedKeys(
+ value,
+ ["schemaVersion", "missingArtifacts", "records", "status", "summary"],
+ "Evidence bundle",
+ );
+ const bundle = value as Partial;
+ if (bundle.schemaVersion !== TEST_EVIDENCE_SCHEMA_VERSION) {
+ throw new TestEvidenceContractError(
+ `Expected bundle schemaVersion '${TEST_EVIDENCE_SCHEMA_VERSION}'.`,
+ );
+ }
+ if (!Array.isArray(bundle.records)) {
+ throw new TestEvidenceContractError("Evidence bundle records must be an array.");
+ }
+ bundle.records.forEach(assertTestEvidenceRecord);
+ const ids = bundle.records.map(({ id }) => id);
+ const recordIds = new Set(ids);
+ if (recordIds.size !== ids.length) {
+ throw new TestEvidenceContractError("Evidence bundle record IDs must be unique.");
+ }
+ if (!Array.isArray(bundle.missingArtifacts)) {
+ throw new TestEvidenceContractError("Evidence bundle missingArtifacts must be an array.");
+ }
+ bundle.missingArtifacts.forEach((missing, index) => {
+ if (!isRecord(missing)) {
+ throw new TestEvidenceContractError(
+ `Evidence bundle missingArtifacts[${index}] must be an object.`,
+ );
+ }
+ assertAllowedKeys(
+ missing,
+ ["path", "recordId", "required"],
+ `Evidence bundle missingArtifacts[${index}]`,
+ );
+ const artifact = missing as Partial;
+ assertNonEmpty(artifact.path, `Evidence bundle missingArtifacts[${index}] path`);
+ assertNonEmpty(artifact.recordId, `Evidence bundle missingArtifacts[${index}] recordId`);
+ if (typeof artifact.recordId === "string" && !recordIds.has(artifact.recordId)) {
+ throw new TestEvidenceContractError(
+ `Evidence bundle missingArtifacts[${index}] references unknown record '${artifact.recordId}'.`,
+ );
+ }
+ if (artifact.required !== true) {
+ throw new TestEvidenceContractError(
+ `Evidence bundle missingArtifacts[${index}] must be required.`,
+ );
+ }
+ });
+ if (!isRecord(bundle.summary)) {
+ throw new TestEvidenceContractError("Evidence bundle summary must be an object.");
+ }
+ assertAllowedKeys(
+ bundle.summary,
+ ["failed", "flaky", "passed", "skipped", "total"],
+ "Evidence bundle summary",
+ );
+ const expectedSummary = summarizeRecords(bundle.records);
+ for (const field of ["failed", "flaky", "passed", "skipped", "total"] as const) {
+ if (bundle.summary[field] !== expectedSummary[field]) {
+ throw new TestEvidenceContractError(
+ `Evidence bundle summary ${field} '${String(bundle.summary[field])}' does not match derived '${expectedSummary[field]}'.`,
+ );
+ }
+ }
+ const expectedStatus = deriveBundleStatus(expectedSummary, bundle.missingArtifacts.length);
+ if (bundle.status !== expectedStatus) {
+ throw new TestEvidenceContractError(
+ `Evidence bundle status '${String(bundle.status)}' does not match derived '${expectedStatus}'.`,
+ );
+ }
+}
+
+export function assertTestEvidenceFidelity(
+ record: TestEvidenceRecord,
+ requirement: TestEvidenceFidelityRequirement,
+): void {
+ for (const field of Object.keys(requirement) as Array) {
+ const expected = requirement[field];
+ if (expected !== undefined && record.fidelity[field] !== expected) {
+ throw new TestEvidenceFidelityError(record, field, expected);
+ }
+ }
+}
+
+export function createTestEvidenceBundle(
+ records: readonly TestEvidenceRecord[],
+ artifactExists: TestEvidenceArtifactProbe = () => true,
+): TestEvidenceBundle {
+ const sortedRecords = records
+ .map((record) => {
+ assertTestEvidenceRecord(record);
+ return deepFreeze(redactTestEvidence(normalizeTestEvidenceRecord(record)));
+ })
+ .sort((left, right) => compareStrings(left.id, right.id));
+ const duplicate = sortedRecords.find(({ id }, index) => sortedRecords[index - 1]?.id === id);
+ if (duplicate) {
+ throw new TestEvidenceContractError(`Evidence bundle duplicates id '${duplicate.id}'.`);
+ }
+ const missingArtifacts = sortedRecords.flatMap((record) =>
+ record.attachments
+ .filter(({ path }) => !artifactExists(path))
+ .map(({ path }) => ({ path, recordId: record.id, required: true as const })),
+ );
+ const summary = summarizeRecords(sortedRecords);
+ return deepFreeze({
+ schemaVersion: TEST_EVIDENCE_SCHEMA_VERSION,
+ missingArtifacts,
+ records: sortedRecords,
+ status: deriveBundleStatus(summary, missingArtifacts.length),
+ summary,
+ });
+}
+
+function summarizeRecords(records: readonly TestEvidenceRecord[]): TestEvidenceBundle["summary"] {
+ return {
+ failed: records.filter(({ outcome }) => outcome === "failed").length,
+ flaky: records.filter(({ outcome }) => outcome === "flaky").length,
+ passed: records.filter(({ outcome }) => outcome === "passed").length,
+ skipped: records.filter(({ outcome }) => outcome === "skipped").length,
+ total: records.length,
+ };
+}
+
+function deriveBundleStatus(
+ summary: TestEvidenceBundle["summary"],
+ missingArtifactCount: number,
+): TestEvidenceBundle["status"] {
+ return summary.failed > 0 || summary.flaky > 0 || missingArtifactCount > 0 ? "failed" : "passed";
+}
+
+function normalizeTestEvidenceRecord(record: TestEvidenceRecord): TestEvidenceRecord {
+ return {
+ ...record,
+ intent: { ...record.intent, contractIds: sortStrings(record.intent.contractIds) },
+ observed: {
+ ...record.observed,
+ contractIds: sortStrings(record.observed.contractIds),
+ ...(record.observed.eventIds ? { eventIds: sortStrings(record.observed.eventIds) } : {}),
+ ...(record.observed.problemCodes
+ ? { problemCodes: sortStrings(record.observed.problemCodes) }
+ : {}),
+ ...(record.observed.routeIds ? { routeIds: sortStrings(record.observed.routeIds) } : {}),
+ },
+ diagnostics: sortDiagnostics(record.diagnostics),
+ attempts: [...record.attempts]
+ .sort((left, right) => left.attempt - right.attempt)
+ .map((attempt) => ({
+ ...attempt,
+ ...(attempt.attachments ? { attachments: sortAttachments(attempt.attachments) } : {}),
+ ...(attempt.diagnostics ? { diagnostics: sortDiagnostics(attempt.diagnostics) } : {}),
+ })),
+ resources: { ...record.resources, leaks: sortStrings(record.resources.leaks) },
+ attachments: sortAttachments(record.attachments),
+ };
+}
+
+function sortAttachments(
+ attachments: readonly TestEvidenceAttachment[],
+): readonly TestEvidenceAttachment[] {
+ return [...attachments].sort((left, right) =>
+ compareStrings(
+ `${left.kind}\u0000${left.path}\u0000${left.schemaVersion ?? ""}`,
+ `${right.kind}\u0000${right.path}\u0000${right.schemaVersion ?? ""}`,
+ ),
+ );
+}
+
+function sortDiagnostics(
+ diagnostics: readonly TestEvidenceDiagnostic[],
+): readonly TestEvidenceDiagnostic[] {
+ return [...diagnostics].sort((left, right) =>
+ compareStrings(
+ `${left.code}\u0000${left.recoveryAction}`,
+ `${right.code}\u0000${right.recoveryAction}`,
+ ),
+ );
+}
+
+function sortStrings(values: readonly string[]): readonly string[] {
+ return [...values].sort(compareStrings);
+}
+
+function compareStrings(left: string, right: string): number {
+ return left < right ? -1 : left > right ? 1 : 0;
+}
+
+export function serializeTestEvidence(value: TestEvidenceBundle | TestEvidenceRecord): string {
+ return `${JSON.stringify(sortJson(value), null, 2)}\n`;
+}
+
+export function renderTestEvidenceMarkdown(bundle: TestEvidenceBundle): string {
+ const lines = [
+ "# Croco test evidence",
+ "",
+ `- Schema: \`${bundle.schemaVersion}\``,
+ `- Status: **${bundle.status}**`,
+ `- Records: ${bundle.summary.total} (${bundle.summary.passed} passed, ${bundle.summary.failed} failed, ${bundle.summary.flaky} flaky, ${bundle.summary.skipped} skipped)`,
+ `- Missing artifacts: ${bundle.missingArtifacts.length}`,
+ "",
+ "| ID | Runner | Outcome | Boot | Dependency | Runtime | Isolation | Attempts |",
+ "| --- | --- | --- | --- | --- | --- | --- | ---: |",
+ ...bundle.records.map(
+ (record) =>
+ `| ${escapeMarkdown(record.id)} | ${record.runner} | ${record.outcome} | ${record.fidelity.boot} | ${record.fidelity.dependency} | ${record.fidelity.runtime} | ${record.fidelity.isolation} | ${record.attempts.length} |`,
+ ),
+ ];
+ if (bundle.missingArtifacts.length > 0) {
+ lines.push("", "## Missing artifacts", "");
+ for (const missing of bundle.missingArtifacts) {
+ lines.push(
+ `- Record ID: ${escapeMarkdown(missing.recordId)}; path: ${escapeMarkdown(missing.path)}`,
+ );
+ }
+ }
+ return `${lines.join("\n")}\n`;
+}
+
+export function redactTestEvidence(value: T): T {
+ return redactValue(value, "", new WeakSet()) as T;
+}
+
+export function assertNoTestEvidenceSecrets(
+ value: unknown,
+ secretSamples: readonly string[],
+): void {
+ let serialized: string | undefined;
+ try {
+ serialized = JSON.stringify(value);
+ } catch (error) {
+ throw new TestEvidenceContractError("Evidence must be JSON-serializable.", error);
+ }
+ if (typeof serialized !== "string") {
+ throw new TestEvidenceContractError("Evidence must serialize to a JSON value.");
+ }
+ for (const sample of secretSamples) {
+ if (sample && serialized.includes(sample)) {
+ throw new TestEvidenceContractError("Evidence contains a configured secret sample.");
+ }
+ }
+}
+
+function assertAttempts(
+ id: unknown,
+ value: unknown,
+): asserts value is readonly TestEvidenceAttempt[] {
+ if (!Array.isArray(value) || value.length === 0) {
+ throw new TestEvidenceContractError(`Evidence '${String(id)}' requires at least one attempt.`);
+ }
+ value.forEach((attempt, index) => {
+ if (!isRecord(attempt)) {
+ throw new TestEvidenceContractError(
+ `Evidence '${String(id)}' attempt ${index + 1} must be an object.`,
+ );
+ }
+ const typedAttempt = attempt as Partial;
+ assertAllowedKeys(
+ attempt,
+ ["attachments", "attempt", "diagnostics", "durationMs", "outcome"],
+ `Evidence '${String(id)}' attempt ${index + 1}`,
+ );
+ if (typedAttempt.attempt !== index + 1) {
+ throw new TestEvidenceContractError(
+ `Evidence '${String(id)}' attempts must be contiguous and one-based; received ${typedAttempt.attempt} at index ${index}.`,
+ );
+ }
+ assertEnum(typedAttempt.outcome, ATTEMPT_OUTCOMES, `Evidence '${String(id)}' attempt outcome`);
+ assertDuration(id, typedAttempt.durationMs, `attempt ${typedAttempt.attempt}`);
+ if (typedAttempt.diagnostics !== undefined) {
+ assertDiagnostics(
+ id,
+ typedAttempt.diagnostics,
+ `attempt ${typedAttempt.attempt} diagnostics`,
+ );
+ }
+ if (typedAttempt.attachments !== undefined) {
+ assertAttachments(
+ id,
+ typedAttempt.attachments,
+ `attempt ${typedAttempt.attempt} attachments`,
+ );
+ }
+ });
+}
+
+function assertFidelity(id: string, value: unknown): asserts value is TestEvidenceFidelity {
+ if (!isRecord(value)) {
+ throw new TestEvidenceContractError(`Evidence '${id}' fidelity must be an object.`);
+ }
+ const fidelity = value as Partial;
+ assertAllowedKeys(
+ value,
+ ["boot", "dependency", "isolation", "runtime", "validation"],
+ `Evidence '${id}' fidelity`,
+ );
+ assertEnum(
+ fidelity.boot,
+ ["isolated", "application", "adapter"] as const,
+ `Evidence '${id}' fidelity boot`,
+ );
+ assertEnum(
+ fidelity.dependency,
+ ["fake", "local-real", "remote-real"] as const,
+ `Evidence '${id}' fidelity dependency`,
+ );
+ assertEnum(
+ fidelity.isolation,
+ ["fake", "rollback", "commit", "migration"] as const,
+ `Evidence '${id}' fidelity isolation`,
+ );
+ assertEnum(
+ fidelity.runtime,
+ ["node", "lambda", "cloudflare", "browser"] as const,
+ `Evidence '${id}' fidelity runtime`,
+ );
+ assertEnum(
+ fidelity.validation,
+ ["isolated", "production", "overridden"] as const,
+ `Evidence '${id}' fidelity validation`,
+ );
+}
+
+function assertResources(id: string, value: unknown): asserts value is TestEvidenceResourceStatus {
+ const resources = isRecord(value) ? (value as Partial) : undefined;
+ if (
+ !resources ||
+ !Array.isArray(resources.leaks) ||
+ resources.leaks.some((leak) => typeof leak !== "string")
+ ) {
+ throw new TestEvidenceContractError(`Evidence '${id}' resources must include string leak IDs.`);
+ }
+ assertAllowedKeys(
+ value as Record,
+ ["leaks", "status"],
+ `Evidence '${id}' resources`,
+ );
+ assertEnum(
+ resources.status,
+ ["clean", "leaked", "not-checked"] as const,
+ `Evidence '${id}' resource status`,
+ );
+}
+
+function assertDiagnostics(
+ id: unknown,
+ value: unknown,
+ label: string,
+): asserts value is readonly TestEvidenceDiagnostic[] {
+ if (!Array.isArray(value)) {
+ throw new TestEvidenceContractError(`Evidence '${String(id)}' ${label} must be an array.`);
+ }
+ value.forEach((diagnostic, index) => {
+ if (!isRecord(diagnostic)) {
+ throw new TestEvidenceContractError(
+ `Evidence '${String(id)}' ${label}[${index}] must be an object.`,
+ );
+ }
+ const typedDiagnostic = diagnostic as Partial;
+ assertAllowedKeys(
+ diagnostic,
+ ["code", "recoveryAction"],
+ `Evidence '${String(id)}' ${label}[${index}]`,
+ );
+ assertNonEmpty(typedDiagnostic.code, `Evidence '${String(id)}' ${label}[${index}] code`);
+ assertNonEmpty(
+ typedDiagnostic.recoveryAction,
+ `Evidence '${String(id)}' ${label}[${index}] recovery action`,
+ );
+ });
+}
+
+function assertAttachments(
+ id: unknown,
+ value: unknown,
+ label: string,
+): asserts value is readonly TestEvidenceAttachment[] {
+ if (!Array.isArray(value)) {
+ throw new TestEvidenceContractError(`Evidence '${String(id)}' ${label} must be an array.`);
+ }
+ value.forEach((attachment, index) => {
+ if (!isRecord(attachment)) {
+ throw new TestEvidenceContractError(
+ `Evidence '${String(id)}' ${label}[${index}] must be an object.`,
+ );
+ }
+ const typedAttachment = attachment as Partial;
+ assertAllowedKeys(
+ attachment,
+ ["kind", "path", "schemaVersion"],
+ `Evidence '${String(id)}' ${label}[${index}]`,
+ );
+ assertEnum(
+ typedAttachment.kind,
+ ATTACHMENT_KINDS,
+ `Evidence '${String(id)}' ${label}[${index}] kind`,
+ );
+ assertNonEmpty(typedAttachment.path, `Evidence '${String(id)}' ${label}[${index}] path`);
+ if (typedAttachment.schemaVersion !== undefined) {
+ assertNonEmpty(
+ typedAttachment.schemaVersion,
+ `Evidence '${String(id)}' ${label}[${index}] schema version`,
+ );
+ }
+ });
+}
+
+function assertStringIds(value: unknown, label: string): asserts value is readonly string[] {
+ if (!Array.isArray(value)) {
+ throw new TestEvidenceContractError(`${label} IDs must be an array.`);
+ }
+ assertStableIds(value, label);
+}
+
+function assertDuration(id: unknown, value: unknown, label: string): void {
+ if (value !== undefined && (typeof value !== "number" || !Number.isFinite(value) || value < 0)) {
+ throw new TestEvidenceContractError(
+ `Evidence '${String(id)}' ${label} has invalid durationMs.`,
+ );
+ }
+}
+
+function assertEnum(
+ value: unknown,
+ allowed: T,
+ label: string,
+): asserts value is T[number] {
+ if (typeof value !== "string" || !(allowed as readonly string[]).includes(value)) {
+ throw new TestEvidenceContractError(`${label} '${String(value)}' is not supported.`);
+ }
+}
+
+function assertAllowedKeys(
+ value: Record,
+ allowed: readonly string[],
+ label: string,
+): void {
+ const unexpected = Object.keys(value).filter((key) => !allowed.includes(key));
+ if (unexpected.length > 0) {
+ throw new TestEvidenceContractError(
+ `${label} contains unsupported field(s): ${sortStrings(unexpected).join(", ")}.`,
+ );
+ }
+}
+
+function assertStableIds(ids: readonly string[], label: string): void {
+ const seen = new Set();
+ for (const id of ids) {
+ assertNonEmpty(id, label);
+ if (seen.has(id)) {
+ throw new TestEvidenceContractError(`${label} id '${id}' is duplicated.`);
+ }
+ seen.add(id);
+ }
+}
+
+function assertNonEmpty(value: unknown, label: string): asserts value is string {
+ if (typeof value !== "string" || value.trim().length === 0) {
+ throw new TestEvidenceContractError(`${label} must be a non-empty string.`);
+ }
+}
+
+function redactValue(value: unknown, key: string, ancestors: WeakSet