{"record":{"id":"289d840f5e78d3f0","repo":"windmill-labs/windmill","slug":"could-not-extract-raw-app-name-from-path-p","errorCode":null,"errorMessage":"Could not extract raw app name from path: ${p}","messagePattern":"Could not extract raw app name from path: (.+?)","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"cli/src/types.ts","lineNumber":235,"sourceCode":"    originalLocalPath,\n    permissionedAsContext,\n    wsSpecific,\n    keyPushOpts,\n    defaultTs,\n    enabledOwnedByParent,\n  } = opts;\n  const typeEnding = getTypeStrFromPath(p);\n\n  if (typeEnding === \"app\") {\n    const appName = extractResourceName(p, \"app\");\n    if (!appName) {\n      throw new Error(`Could not extract app name from path: ${p}`);\n    }\n    await pushApp(workspace, appName, buildFolderPath(appName, \"app\"), message, permissionedAsContext);\n  } else if (typeEnding === \"raw_app\") {\n    const rawAppName = extractResourceName(p, \"raw_app\");\n    if (!rawAppName) {\n      throw new Error(`Could not extract raw app name from path: ${p}`);\n    }\n    await pushRawApp(workspace, rawAppName, buildFolderPath(rawAppName, \"raw_app\"), message, defaultTs);\n  } else if (typeEnding === \"folder\") {\n    await pushFolder(workspace, p, befObj, newObj);\n  } else if (typeEnding === \"variable\") {\n    await pushVariable(workspace, p, befObj, newObj, plainSecrets, wsSpecific);\n  } else if (typeEnding === \"flow\") {\n    const flowName = extractResourceName(p, \"flow\");\n    if (!flowName) {\n      throw new Error(`Could not extract flow name from path: ${p}`);\n    }\n    await pushFlow(workspace, flowName, buildFolderPath(flowName, \"flow\"), message, permissionedAsContext);\n  } else if (typeEnding === \"resource\") {\n    if (!alreadySynced.includes(p)) {\n      alreadySynced.push(p);\n      await pushResource(workspace, p, befObj, newObj, originalLocalPath || p, wsSpecific, true);\n    }\n  } else if (typeEnding === \"resource-type\") {","sourceCodeStart":217,"sourceCodeEnd":253,"githubUrl":"https://github.com/windmill-labs/windmill/blob/e474e8803ce2ff5c2df09a58dab51d45f5c922ca/cli/src/types.ts#L217-L253","documentation":"Thrown by pushObj when the sync path is recognized as a raw app (typeEnding raw_app) but extractResourceName cannot recover the raw app's name from the file path. This is a generic guard against malformed sync paths: the input at fault is the local path `p`, which despite ending in raw_app does not contain a parseable resource name segment, so the push cannot determine which remote raw app to target.","triggerScenarios":"Thrown at cli/src/types.ts:235 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Ensure the file/folder path follows the <name>.raw_app(.yaml) convention.","Fix the type suffix in the path."],"exampleFix":null,"handlingStrategy":"type-guard","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"e474e8803ce2ff5c2df09a58dab51d45f5c922ca","analyzedAt":"2026-09-03T12:38:19.024Z","contentChangedAt":"2026-09-03T12:38:19.024Z","schemaVersion":2},"datasetVersion":"2026-09-08T10:18:20.063Z"}