{"record":{"id":"9a3f2bb75ecadcc3","repo":"n8n-io/n8n","slug":"string-dropped-length-case-s-did-not-round-tr","errorCode":null,"errorMessage":"${String(dropped.length)} case(s) did not round-trip: the fields above were sent but are absent from the suite export. A lang-tracer deployment can silently ignore a key it predates (`seed` needs #113, `attach` needs #119) — upgrade it, then re-push. The cases in the suite are NOT what you authored until you do.","messagePattern":"(.+?) case\\(s\\) did not round-trip: the fields above were sent but are absent from the suite export\\. A lang-tracer deployment can silently ignore a key it predates \\(`seed` needs #113, `attach` needs #119\\) — upgrade it, then re-push\\. The cases in the suite are NOT what you authored until you do\\.","errorType":"exception","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"packages/@n8n/instance-ai/evaluations/cli/langtracer-push.ts","lineNumber":294,"sourceCode":"\tif (written.length === 0) return;\n\n\tconst after = await client.exportSuite(suiteId);\n\tconst dropped = written\n\t\t.map((item) => ({\n\t\t\tfileSlug: item.fileSlug,\n\t\t\tkeys: comparableDiff(after.files[`${item.fileSlug}.json`], item.testCase),\n\t\t}))\n\t\t.filter((result) => result.keys.length > 0);\n\n\tif (dropped.length === 0) {\n\t\tconsole.log(`  verified ${String(written.length)} case(s) round-trip intact`);\n\t\treturn;\n\t}\n\n\tfor (const result of dropped) {\n\t\tconsole.error(`  ! ${result.fileSlug}: server did not store ${result.keys.join(', ')}`);\n\t}\n\tthrow new Error(\n\t\t`${String(dropped.length)} case(s) did not round-trip: the fields above were sent but are absent from the suite export. ` +\n\t\t\t'A lang-tracer deployment can silently ignore a key it predates (`seed` needs #113, `attach` needs #119) — ' +\n\t\t\t'upgrade it, then re-push. The cases in the suite are NOT what you authored until you do.',\n\t);\n}\n\nfunction printBucket(label: string, slugs: string[]): void {\n\tconst pad = label.padEnd(9);\n\tconsole.log(`  ${pad} ${String(slugs.length)}${slugs.length ? `  (${slugs.join(', ')})` : ''}`);\n}\n\nmain().catch((error: unknown) => {\n\tconsole.error(error instanceof Error ? error.message : String(error));\n\tprocess.exit(1);\n});\n","sourceCodeStart":276,"sourceCodeEnd":310,"githubUrl":"https://github.com/n8n-io/n8n/blob/5ac6606e81f67bb9534255570cd4e86fd8101eee/packages/@n8n/instance-ai/evaluations/cli/langtracer-push.ts#L276-L310","documentation":"After pushing cases to lang-tracer, the CLI re-exports the suite and diffs each case against what was authored. If keys that were sent are missing from the export, it concludes the deployment silently dropped them — known gaps are `seed` (needs lang-tracer PR #113) and `attach` (needs #119). The throw is deliberate because the stored suite is not what you authored.","triggerScenarios":"Pushing cases that use `seed` or `attach` fields against a lang-tracer deployment older than the versions that introduced those keys; pointing the CLI at a stale/staging lang-tracer instance.","commonSituations":"Upgrading the eval CLI but not the lang-tracer server; running against a teammate's older local lang-tracer; CI using a cached older lang-tracer image.","solutions":["Upgrade the lang-tracer deployment to a version that includes PR #113 (`seed`) and #119 (`attach`).","Re-run `langtracer-push` after the upgrade so the dropped keys are accepted.","If you cannot upgrade immediately, temporarily remove `seed`/`attach` from the affected cases so the round-trip is clean, then restore them post-upgrade."],"exampleFix":null,"handlingStrategy":"validation","validationCode":"// Before pushing, query the lang-tracer deployment version / changelog\n// and skip cases using keys it predates:\nconst supportsSeed = serverVersion.gte('0.x.y'); // post-#113\nconst safeCases = cases.filter(c => supportsSeed || !('seed' in c));","typeGuard":null,"tryCatchPattern":"try { await push(cases); } catch (e) {\n  if (e instanceof Error && e.message.includes('did not round-trip')) { /* upgrade lang-tracer, retry */ }\n  else throw e;\n}","preventionTips":["Pin and document the minimum lang-tracer version that supports seed/attach.","Run the round-trip check in CI against a staging lang-tracer before publishing cases.","Track which cases use seed/attach so a version bump risk is visible."],"tags":["eval","langtracer","version-mismatch","round-trip"],"backgroundTag":null,"analyzedSha":"5ac6606e81f67bb9534255570cd4e86fd8101eee","analyzedAt":"2026-08-12T05:26:35.080Z","schemaVersion":2},"datasetVersion":"2026-08-13T14:17:21.547Z"}