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
-
[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".
-
[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().
-
[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.
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.
Errors requiring action
1. Template processing fails due to js-yaml compatibility — CLI bug
createError: (from PostHog — the actual error message users see)
Stack trace: (only show frames from
packages/cli/src/— skip generic entry points)Root cause: EJS template rendering fails due to a dependency using obsolete js-yaml API:
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 useyaml.load()instead ofyaml.safeLoad().2. Path corruption during eject causes mkdir failures — CLI bug
ejectError: (from PostHog — the actual error message users see)
Stack trace: (shows generic Commander frames only)
Root cause: Path resolution corruption in eject command input handling:
The corrupted path shows the suggested path (
we-garden-templofrom 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 callingresolve(selectedPath)to prevent Windows path corruption and detect malformed paths.3. Authentication timeout lacks error classification — CLI bug
whoami,loginError: (from PostHog — the actual error message users see)
Stack trace: (only show frames from
packages/cli/src/— skip generic entry points)Root cause: The authentication timeout throws a generic
Errorwithout proper classification:This timeout occurs when the OAuth2 device code expires. The generic
Errorlacks proper classification for telemetry tracking, causingerror_code: nullandis_user_error: nullin PostHog.Suggested fix: In
packages/cli/src/cli/commands/auth/login-flow.ts:73, replacethrow new Error("Authentication timed out. Please try again.")withthrow new AuthExpiredError("Authentication timed out. Please try again.")using the existing error class frompackages/cli/src/core/errors.ts:147.Backend issues (not CLI fixes)
logindeployentities pushOAuth token expiration and backend API validation errors are server-side issues, not CLI bugs.
User errors (working as designed)
ejecttypes generateexecentities pushdeploylinkAll 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
This is the longest-running unresolved CLI bug, affecting telemetry accuracy and user experience classification across multiple weeks.
Action items
[critical]
packages/cli/src/cli/commands/auth/login-flow.ts:73— Replacethrow new Error("Authentication timed out. Please try again.")withthrow new AuthExpiredError("Authentication timed out. Please try again.")to enable proper telemetry classification. TheAuthExpiredErrorclass is already defined and extendsUserErrorwith error code "AUTH_EXPIRED".[high]
package.jsonorpackages/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 useyaml.load()instead of the deprecatedyaml.safeLoad().[medium]
packages/cli/src/cli/commands/project/eject.ts:114— Add path validation and sanitization beforeresolve(selectedPath)to prevent Windows path corruption when user input mixes with suggested paths during interactive prompts.