{"record":{"id":"7edd5ae7ad3c73c9","repo":"nexu-io/open-design","slug":"could-not-create-token-contract-revision","errorCode":null,"errorMessage":"Could not create token contract revision","messagePattern":"Could not create token contract revision","errorType":"exception","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"apps/daemon/src/design-systems/generation-jobs.ts","lineNumber":317,"sourceCode":"            ? 'Forced rebuild'\n            : 'No quality trigger';\n        setStepMessage(job, 'assess-evidence', triggers);\n      });\n      await runStep(job, 'draft-contract-review', async () => {\n        await sleep(delayMs);\n        const weakCount = input.decision.weakTokens?.length ?? 0;\n        setStepMessage(job, 'draft-contract-review', `Prepared TOKEN_SCHEMA rebuild request (${weakCount} weak token(s))`);\n      });\n      await runStep(job, 'create-revision', async () => {\n        const revision = await createRevision(jobRoot, input.designSystemId, {\n          feedback: input.feedback,\n          baseBody: input.baseBody,\n          proposedBody: input.proposedBody,\n          sectionTitle: input.sectionTitle,\n          jobId: job.id,\n          ...(input.fileChanges?.length ? { fileChanges: input.fileChanges } : {}),\n        });\n        if (!revision) throw new Error('Could not create token contract revision');\n        job.revisionId = revision.id;\n        setStepMessage(job, 'create-revision', `Created pending token revision ${revision.id}`);\n      });\n      await runStep(job, 'prepare-review', async () => {\n        await sleep(delayMs);\n        setStepMessage(job, 'prepare-review', 'Token contract rebuild is ready for review');\n      });\n      completeJob(job, 'succeeded', 'Token contract rebuild ready for review');\n    } catch (err) {\n      failJob(job, err instanceof Error ? err.message : String(err));\n    }\n  }\n\n  return { start, revise, rebuildTokenContract, get };\n}\n\nasync function runStep(\n  job: MutableJob,","sourceCodeStart":299,"sourceCodeEnd":335,"githubUrl":"https://github.com/nexu-io/open-design/blob/5be4028344c2eb4c667c5a97bda8f750c5597ef7/apps/daemon/src/design-systems/generation-jobs.ts#L299-L335","documentation":"Same createRevision-null condition as error 190, but inside the token-contract-rebuild job kind. The rebuild job drafts a revised TOKEN_SCHEMA and then asks createRevision to persist it; a null return aborts with this message.","triggerScenarios":"The token-contract-rebuild job reaches create-revision with input.baseBody and input.proposedBody, but createRevision returns null because the design system directory is missing, a write conflict occurred, or storage rejected the revision.","commonSituations":"Design system removed mid-rebuild; concurrent token rebuilds racing on the same ID; disk or permission problems in the daemon data dir.","solutions":["Retry the token-contract rebuild after confirming the design system exists.","Ensure no concurrent rebuild/revision targets the same design system.","Verify daemon data dir is writable with free space."],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":"null","typeGuard":"null","tryCatchPattern":"try {\n  await startTokenContractRebuild({ designSystemId, root });\n} catch (err) {\n  if (err instanceof Error && /Could not create token contract revision/i.test(err.message)) {\n    // verify the design system still exists, then retry the rebuild\n  } else throw err;\n}","preventionTips":["Do not run concurrent token-contract rebuilds against the same design system.","Ensure the daemon data dir is writable and has free disk space.","Confirm the design system exists and has a valid base body before scheduling a rebuild."],"tags":["design-systems","token-contract","revision","storage","race"],"backgroundTag":null,"analyzedSha":"5be4028344c2eb4c667c5a97bda8f750c5597ef7","analyzedAt":"2026-08-12T12:03:58.812Z","schemaVersion":2},"datasetVersion":"2026-08-12T18:17:37.767Z"}