windmill-labs/windmill · error

Could not extract raw app name from path: ${p}

Error message

Could not extract raw app name from path: ${p}

What it means

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.

Source

Thrown at cli/src/types.ts:235

    originalLocalPath,
    permissionedAsContext,
    wsSpecific,
    keyPushOpts,
    defaultTs,
    enabledOwnedByParent,
  } = opts;
  const typeEnding = getTypeStrFromPath(p);

  if (typeEnding === "app") {
    const appName = extractResourceName(p, "app");
    if (!appName) {
      throw new Error(`Could not extract app name from path: ${p}`);
    }
    await pushApp(workspace, appName, buildFolderPath(appName, "app"), message, permissionedAsContext);
  } else if (typeEnding === "raw_app") {
    const rawAppName = extractResourceName(p, "raw_app");
    if (!rawAppName) {
      throw new Error(`Could not extract raw app name from path: ${p}`);
    }
    await pushRawApp(workspace, rawAppName, buildFolderPath(rawAppName, "raw_app"), message, defaultTs);
  } else if (typeEnding === "folder") {
    await pushFolder(workspace, p, befObj, newObj);
  } else if (typeEnding === "variable") {
    await pushVariable(workspace, p, befObj, newObj, plainSecrets, wsSpecific);
  } else if (typeEnding === "flow") {
    const flowName = extractResourceName(p, "flow");
    if (!flowName) {
      throw new Error(`Could not extract flow name from path: ${p}`);
    }
    await pushFlow(workspace, flowName, buildFolderPath(flowName, "flow"), message, permissionedAsContext);
  } else if (typeEnding === "resource") {
    if (!alreadySynced.includes(p)) {
      alreadySynced.push(p);
      await pushResource(workspace, p, befObj, newObj, originalLocalPath || p, wsSpecific, true);
    }
  } else if (typeEnding === "resource-type") {

View on GitHub (pinned to e474e8803c)

Solutions

  1. Ensure the file/folder path follows the <name>.raw_app(.yaml) convention.
  2. Fix the type suffix in the path.
Defensive patterns

Strategy: type-guard

When it happens

Trigger: Thrown at cli/src/types.ts:235 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of windmill-labs/windmill@e474e8803c (2026-09-03). Data as JSON: /api/errors/289d840f5e78d3f0. Report an issue: GitHub.