Skip to content

Remediation dialog hides the real lockfile-resolution error #141

Description

@alamb-hex

When resolveLockfile fails, update/route.ts:85 returns:

return { status: 500, body: { success: false, error: `Lockfile resolution (${resolutionMode}) failed`, resolution } };

The resolution object carries resolution.error and resolution.actions[], which contain the actual package-manager output. But remediation-dialog.tsx:308 renders only outcome.error — the generic wrapper string.

Result: every failure, regardless of cause, shows the identical message Lockfile resolution (clean-slate) failed. The diagnosis is present in the response payload and simply never displayed.

Real-world impact

Repeated remediation attempts on do868.com all failed with that one line. The actual cause was in resolution.actions:

WARN Failed to replace env in config: ${GITHUB_TOKEN}
ERR_PNPM_FETCH_404 GET https://registry.npmjs.org/@do868%2Fshared: Not Found
No authorization header was set for the request.

Diagnosing it required reproducing the install by hand from the CLI.

Fix

Render resolution.actions[] (and resolution.error) in the failure branch of the dialog — the log-tail treatment already used by renderInstallLogTail() would suit it.

Notes

Small change, high leverage — it would have made this self-diagnosing. Should land before the other two issues in this set.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions