{"record":{"id":"7ed1d3db5e1f4a40","repo":"moeru-ai/airi","slug":"unsupported-settle-delay-argv-settlemsflagindex","errorCode":null,"errorMessage":"Unsupported settle delay \"${argv[settleMsFlagIndex + 1] ?? settleMs}\". Expected a number >= 0.","messagePattern":"Unsupported settle delay \"(.+?)\"\\. Expected a number >= 0\\.","errorType":"exception","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"packages/scenarios-stage-tamagotchi-browser/scripts/capture.ts","lineNumber":87,"sourceCode":"\nif (settleMsFlagIndex >= 0 && !argv[settleMsFlagIndex + 1]) {\n  throw new Error('Missing value for --settle-ms.')\n}\n\nif (avifMaxWidthFlagIndex >= 0 && !argv[avifMaxWidthFlagIndex + 1]) {\n  throw new Error('Missing value for --avif-max-width.')\n}\n\nif (avifQualityFlagIndex >= 0 && !argv[avifQualityFlagIndex + 1]) {\n  throw new Error('Missing value for --avif-quality.')\n}\n\nif (avifSpeedFlagIndex >= 0 && !argv[avifSpeedFlagIndex + 1]) {\n  throw new Error('Missing value for --avif-speed.')\n}\n\nif (!Number.isFinite(settleMs) || settleMs < 0) {\n  throw new Error(`Unsupported settle delay \"${argv[settleMsFlagIndex + 1] ?? settleMs}\". Expected a number >= 0.`)\n}\n\nif (!Number.isFinite(avifMaxWidth) || avifMaxWidth < 1) {\n  throw new Error(`Unsupported AVIF max width \"${argv[avifMaxWidthFlagIndex + 1] ?? avifMaxWidth}\". Expected a number >= 1.`)\n}\n\nif (!Number.isFinite(avifQuality) || avifQuality < 0 || avifQuality > 100) {\n  throw new Error(`Unsupported AVIF quality \"${argv[avifQualityFlagIndex + 1] ?? avifQuality}\". Expected a number between 0 and 100.`)\n}\n\nif (!Number.isFinite(avifSpeed) || avifSpeed < 1 || avifSpeed > 10) {\n  throw new Error(`Unsupported AVIF speed \"${argv[avifSpeedFlagIndex + 1] ?? avifSpeed}\". Expected a number between 1 and 10.`)\n}\n\nawait captureBrowserRoots({\n  imageTransformers: requestedFormat === 'avif'\n    ? [avifTransformer]\n    : undefined,","sourceCodeStart":69,"sourceCodeEnd":105,"githubUrl":"https://github.com/moeru-ai/airi/blob/677329427f32468c74b17f3ec47eeca4e05bec65/packages/scenarios-stage-tamagotchi-browser/scripts/capture.ts#L69-L105","documentation":"After confirming --settle-ms has a value, the script converts it with Number() (capture.ts:25) and requires a finite result >= 0 (capture.ts:87). This error fires when the raw string is not numeric (Number() returns NaN), or is negative. The message echoes the original argv string (or the coerced value) so you can see exactly what was parsed.","triggerScenarios":"Passing a non-numeric value (`--settle-ms abc`, `--settle-ms 1s`, `--settle-ms 500ms`), a negative value (`--settle-ms -1`), or a string that Number() cannot coerce. Note that a following flag like `--settle-ms --format` coerces to NaN here because any non-empty string passes the presence check at capture.ts:70.","commonSituations":"Units confusion (typing seconds where milliseconds are expected, e.g. `--settle-ms 0.5s`), locale decimal separators, or the value slot silently swallowed by another flag.","solutions":["Pass milliseconds as a plain non-negative number: `--settle-ms 1500`","If you meant seconds, convert first: 0.5 s -> `--settle-ms 500`","Check no other flag immediately follows --settle-ms without an intervening value"],"exampleFix":"// before\npnpm capture --settle-ms 1s\n// after\npnpm capture --settle-ms 1000","handlingStrategy":"validation","validationCode":"function parseSettleMs(raw: string | undefined): number {\n  const value = raw === undefined ? 500 : Number(raw)\n  if (!Number.isFinite(value) || value < 0)\n    throw new Error(`Unsupported settle delay \"${raw}\". Expected a number >= 0.`)\n  return value\n}","typeGuard":"const isNonNegativeNumber = (v: unknown): v is number =>\n  typeof v === 'number' && Number.isFinite(v) && v >= 0","tryCatchPattern":null,"preventionTips":["Pass plain integer milliseconds; no units or suffixes","Convert seconds to milliseconds in the calling script","Ensure the token after --settle-ms is a value, not another flag"],"tags":["cli","argv","nan","vishot","capture"],"backgroundTag":"invalid-cli-argument-value","analyzedSha":"677329427f32468c74b17f3ec47eeca4e05bec65","analyzedAt":"2026-08-18T17:29:58.153Z","contentChangedAt":"2026-08-18T17:29:58.153Z","schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}