Repository navigation
fix(project): handle inaccessible customer in project get - #1956
Merged
martin-helmich merged 1 commit intoJun 30, 2026
Merged
Conversation
When a user has access to a project but not the customer it belongs to, `mw project get` failed with a PermissionDenied error because the customer fetch was asserted to return 200. Render the project gracefully instead, falling back to displaying just the customer ID when the customer is not accessible. Fixes #1955 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
mittwald-machine
added a commit
that referenced
this pull request
Jul 1, 2026
# [1.19.0](v1.18.0...v1.19.0) (2026-07-01) ### Bug Fixes * **project:** handle inaccessible customer in project get ([#1956](#1956)) ([203a95b](203a95b)) ### Features * **app:** allow pinning system-software versions on app create ([#1954](#1954)) ([5bd527b](5bd527b)) * **experimental/deploy:** make image and service name configurable ([#1962](#1962)) ([47ba831](47ba831)), closes [#1960](#1960)
martin-helmich
added a commit
that referenced
this pull request
Jul 7, 2026
…get (#1988) ## Summary Follow-up to #1956, which did not resolve #1955. `mw project get` still failed with a `PermissionDenied` error when a user has access to a project but not the customer it belongs to. PR #1956 tried to handle this by checking `customer.status === 200` and falling back otherwise, but that check is never reached: the request interceptor in `src/lib/apiutil/api_retry.ts` overrides the API client's `validateStatus: () => true` with `status < 300` (so `axios-retry` can retry access-denied POSTs). As a result a `403` **rejects** the `getCustomer` promise rather than returning a response object, and `usePromise` re-throws it during render — killing the whole command. This change catches the rejection inside the loader, swallowing only `403` responses and re-throwing everything else, and renders `no access` for the customer row when it is inaccessible. The project's own details are always displayed. Fixes #1955 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
mittwald-machine
added a commit
that referenced
this pull request
Jul 7, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Fixes #1955.
When a user has access to a project but not the customer it belongs to,
mw project getfailed with aPermissionDeniederror: the customer fetch was asserted to return200, and the403threw before any project information could be rendered.This change removes the assertion on the customer fetch and renders the Customer row conditionally — the full customer table when accessible, otherwise a graceful fallback showing just the customer ID (which is always present on the project response). The project's own details are now always displayed.
🤖 Generated with Claude Code