Skip to content

Error Report: 2026-03-27 (308 errors in last 24h) #448

@claude

Description

@claude

Summary

Template processing compatibility bug affects project creation while authentication timeout classification bug persists for 18+ consecutive days. Path corruption during eject command causes mkdir failures on Windows.

Metric Value
Time range last 24 hours
Total errors 308
CLI bugs 3
Backend issues 2
User errors (working as designed) 6
Unique users affected 103
Internal user occurrences 39

Errors requiring action

1. Template processing fails due to js-yaml compatibility — CLI bug

Error code None (unclassified)
Occurrences 8 (0 internal)
Users affected 5
Command create
Platforms Darwin
PostHog View in error tracking
Existing issue None
Recurring No

Error: (from PostHog — the actual error message users see)

Error: Failed to process template file "base44/app.jsonc.ejs": Function yaml.safeLoad is removed in js-yaml 4. Use yaml.load instead, which is now safe by default.

Stack trace: (only show frames from packages/cli/src/ — skip generic entry points)

at <anonymous> (packages/cli/src/cli/commands/project/create.ts:314)
at runCommand (packages/cli/src/cli/utils/runCommand.ts:110)

Root cause: EJS template rendering fails due to a dependency using obsolete js-yaml API:

// packages/cli/src/core/project/template.ts:63
const rendered = await ejs.renderFile(srcPath, data);

When EJS processes template files, one of its dependencies (or a nested dependency) is using the deprecated yaml.safeLoad() function which was removed in js-yaml v4. The error occurs during template rendering where EJS encounters YAML processing code that uses the old API.

Suggested fix: In package.json, pin js-yaml to a version compatible with the dependency chain, or update/replace the dependency using the outdated js-yaml API to use yaml.load() instead of yaml.safeLoad().


2. Path corruption during eject causes mkdir failures — CLI bug

Error code None (unclassified)
Occurrences 29 (1 internal)
Users affected 20
Command eject
Platforms Windows
PostHog View in error tracking
Existing issue None
Recurring No

Error: (from PostHog — the actual error message users see)

Error: ENOENT: no such file or directory, mkdir 'C:\Users\<redacted>\we-garden-temploC:\Users\<redacted>\Documents\WeGarden App1'

Stack trace: (shows generic Commander frames only)

at Command.parseAsync (command.js:1091:4)

Root cause: Path resolution corruption in eject command input handling:

// packages/cli/src/cli/commands/project/eject.ts:97-114
const suggestedPath = (await isDirEmpty())
  ? `./`
  : `./${kebabCase(selectedProject.name)}`;

const selectedPath =
  options.path ??
  (await text({
    message: "Where should we create your project?",
    placeholder: suggestedPath,
    initialValue: suggestedPath,
  }));

const resolvedPath = resolve(selectedPath);

The corrupted path shows the suggested path (we-garden-templo from kebab-cased project name) concatenated with the user's full path input. This indicates an issue with @clack/prompts text input handling or path resolution on Windows where user input gets mixed with the placeholder value.

Suggested fix: In packages/cli/src/cli/commands/project/eject.ts:114, add path validation and sanitization before calling resolve(selectedPath) to prevent Windows path corruption and detect malformed paths.


3. Authentication timeout lacks error classification — CLI bug

Error code None (unclassified)
Occurrences 14 (1 internal)
Users affected 12
Command whoami, login
Platforms Various
PostHog View in error tracking
Existing issue Referenced in #446, #442, #440, #438, #436
Recurring Yes (18+ days)

Error: (from PostHog — the actual error message users see)

Error: Authentication timed out. Please try again.

Stack trace: (only show frames from packages/cli/src/ — skip generic entry points)

at waitForAuthentication (packages/cli/src/cli/commands/auth/login-flow.ts:71)
at login (packages/cli/src/cli/commands/auth/login-flow.ts:105)

Root cause: The authentication timeout throws a generic Error without proper classification:

// packages/cli/src/cli/commands/auth/login-flow.ts:71-75
} catch (error) {
  if (error instanceof Error && error.message.includes("timed out")) {
    throw new Error("Authentication timed out. Please try again.");
  }
  throw error;
}

This timeout occurs when the OAuth2 device code expires. The generic Error lacks proper classification for telemetry tracking, causing error_code: null and is_user_error: null in PostHog.

Suggested fix: In packages/cli/src/cli/commands/auth/login-flow.ts:73, replace throw new Error("Authentication timed out. Please try again.") with throw new AuthExpiredError("Authentication timed out. Please try again.") using the existing error class from packages/cli/src/core/errors.ts:147.


Backend issues (not CLI fixes)

Error Occurrences Users Command PostHog
OAuth expired_token 24 13 login link
Backend Platform API restrictions 7 4 deploy link
User schema validation failures 6 3 entities push link

OAuth token expiration and backend API validation errors are server-side issues, not CLI bugs.

User errors (working as designed)

Error Occurrences Users Command PostHog
Duplicate function names (INVALID_INPUT) 106 21 eject link
No Base44 project found (CONFIG_NOT_FOUND) 51 21 types generate link
Deno dependency missing (DEPENDENCY_NOT_FOUND) 22 11 exec link
Invalid project configuration (SCHEMA_INVALID) 22 13 entities push link
Output directory missing (INVALID_INPUT) 11 7 deploy link
Project already linked (CONFIG_EXISTS) 5 3 link link

All user errors provide appropriate validation messages. The high volume of duplicate function name errors (106 occurrences) suggests users commonly have naming conflicts when ejecting projects.

Recurring errors

Error Days recurring Existing issue Tracked?
Authentication timeout (unclassified) 18+ days Referenced in #446, #442, #440, #438, #436 No dedicated issue

This is the longest-running unresolved CLI bug, affecting telemetry accuracy and user experience classification across multiple weeks.

Action items

  1. [critical] packages/cli/src/cli/commands/auth/login-flow.ts:73 — Replace throw new Error("Authentication timed out. Please try again.") with throw new AuthExpiredError("Authentication timed out. Please try again.") to enable proper telemetry classification. The AuthExpiredError class is already defined and extends UserError with error code "AUTH_EXPIRED".

  2. [high] package.json or packages/cli/src/core/project/template.ts — Fix js-yaml compatibility issue preventing template processing. Either pin js-yaml to a compatible version or update the dependency chain to use yaml.load() instead of the deprecated yaml.safeLoad().

  3. [medium] packages/cli/src/cli/commands/project/eject.ts:114 — Add path validation and sanitization before resolve(selectedPath) to prevent Windows path corruption when user input mixes with suggested paths during interactive prompts.

Metadata

Metadata

Assignees

No one assigned

    Labels

    error-reportDaily error reports from telemetry data

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions