{"record":{"id":"903bbef93dba0088","repo":"anomalyco/sst","slug":"unsupported-storage-v-the-supported-value-for-903bbe","errorCode":null,"errorMessage":"Unsupported storage: ${v}. The supported value for storage is between \"21 GB\" and \"200 GB\"","messagePattern":"Unsupported storage: (.+?)\\. The supported value for storage is between \"21 GB\" and \"200 GB\"","errorType":"validation","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"platform/src/components/aws/service-v1.ts","lineNumber":215,"sourceCode":"\n    function normalizeMemory() {\n      return all([cpu, args.memory ?? \"0.5 GB\"]).apply(([cpu, v]) => {\n        if (!(v in supportedMemories[cpu])) {\n          throw new Error(\n            `Unsupported memory: ${v}. The supported values for memory for a ${cpu} CPU are ${Object.keys(\n              supportedMemories[cpu],\n            ).join(\", \")}`,\n          );\n        }\n        return v;\n      });\n    }\n\n    function normalizeStorage() {\n      return output(args.storage ?? \"21 GB\").apply((v) => {\n        const storage = toGBs(v);\n        if (storage < 21 || storage > 200)\n          throw new Error(\n            `Unsupported storage: ${v}. The supported value for storage is between \"21 GB\" and \"200 GB\"`,\n          );\n        return v;\n      });\n    }\n\n    function normalizeScaling() {\n      return output(args.scaling).apply((v) => ({\n        min: v?.min ?? 1,\n        max: v?.max ?? 1,\n        cpuUtilization: v?.cpuUtilization ?? 70,\n        memoryUtilization: v?.memoryUtilization ?? 70,\n      }));\n    }\n\n    function normalizeLogging() {\n      return output(args.logging).apply((logging) => ({\n        ...logging,","sourceCodeStart":197,"sourceCodeEnd":233,"githubUrl":"https://github.com/anomalyco/sst/blob/a0bd20f762883e72a35caccb4896c42ce5b3f707/platform/src/components/aws/service-v1.ts#L197-L233","documentation":"Fargate ephemeral storage must be between 21 GB and 200 GB. `normalizeStorage` converts the `storage` arg to GBs via `toGBs` and throws when it falls outside that range. The default is \"21 GB\".","triggerScenarios":"Passing `storage` less than 21 GB or greater than 200 GB, e.g. `storage: \"10 GB\"` or `storage: \"500 GB\"`, or an unparseable string that toGBs maps out of range.","commonSituations":"Trying to shrink storage to save cost below Fargate's minimum; assuming container-docker-like storage limits; typos in units.","solutions":["Set `storage` to a value between \"21 GB\" and \"200 GB\" inclusive (e.g. \"50 GB\")","Remove the `storage` arg to use the default \"21 GB\"","If you need more than 200 GB, mount an EFS volume instead of increasing ephemeral storage"],"exampleFix":"// before\nnew sst.aws.Service(\"Api\", { storage: \"500 GB\" });\n// after\nnew sst.aws.Service(\"Api\", { storage: \"200 GB\" });","handlingStrategy":"validation","validationCode":"if (args.storage) {\n  const gb = parseInt(args.storage);\n  if (isNaN(gb) || gb < 21 || gb > 200) throw new Error(\"storage must be between 21 GB and 200 GB\");\n}","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Remember Fargate ephemeral storage floor is 21 GB","Use EFS for volumes beyond 200 GB","Default (omit `storage`) unless a specific size is required"],"tags":["ecs","fargate","storage","validation"],"backgroundTag":"invalid-resource-size","analyzedSha":"a0bd20f762883e72a35caccb4896c42ce5b3f707","analyzedAt":"2026-08-30T11:26:00.383Z","schemaVersion":2},"datasetVersion":"2026-08-30T13:17:10.514Z"}