Skip to content

Conversation

@LukasHirt
Copy link
Collaborator

Description

We've added a crash page to the application. This page is displayed when the application encounters an error that it cannot recover from. The first such error we are catching is when spaces loading fails.

Motivation and Context

Handle errors that the app cannot recover from instead of showing the UI in a "stuck" state.

How Has This Been Tested?

  • test environment: macos v26.2, chrome v143.0.7499.170
  • test case 1: trigger API error when loading spaces

Screenshots (if appropriate):

image

Types of changes

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change)
  • Technical debt
  • Tests
  • Documentation
  • Maintenance (e.g. dependency updates or tooling)

@LukasHirt LukasHirt self-assigned this Dec 30, 2025
@LukasHirt LukasHirt marked this pull request as draft December 30, 2025 12:37
@LukasHirt LukasHirt changed the title feat: [OCISDEV-541] add crash page [full-ci] feat: [OCISDEV-541] add crash page Jan 5, 2026
@LukasHirt LukasHirt force-pushed the feat/crash-page branch 2 times, most recently from 252134a to 8df0b22 Compare January 5, 2026 09:52
@LukasHirt LukasHirt marked this pull request as ready for review January 5, 2026 09:52
@LukasHirt
Copy link
Collaborator Author

@nirajacharya2 can you please review the new tests? THX

@nirajacharya2

This comment was marked as resolved.

@LukasHirt
Copy link
Collaborator Author

both tests are not working for me locally

- navigating to "/crash?errorCode=RUNTIME-BOOTSTRAP-040", waiting until "load"

This error is strange as it should use the base URL and not only path...

@LukasHirt LukasHirt force-pushed the feat/crash-page branch 2 times, most recently from f33a0bb to 562ff6e Compare January 5, 2026 15:46
Comment on lines 20 to 23
errorCode: string
}) {
const { page } = actorsEnvironment.getActor({ key: 'Alice' })
return page.goto(`${config.baseUrl}/crash?errorCode=${errorCode}`)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

it will be better to pass user to function. if we logged in with brian this test would have failed

Suggested change
errorCode: string
}) {
const { page } = actorsEnvironment.getActor({ key: 'Alice' })
return page.goto(`${config.baseUrl}/crash?errorCode=${errorCode}`)
errorCode: string
user: string
}) {
const { page } = actorsEnvironment.getActor({ key: user })
return page.goto(`${config.baseUrl}/crash?errorCode=${errorCode}`)

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I did slightly different behaviour where I am passing the page directly. Saves one extra param and when doing multiple steps, we get the page from the actor only once instead of inside every step. Let me please know whether this change is fine.

Copy link
Contributor

@nirajacharya2 nirajacharya2 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

test code looks good to me

)
}}
</h1>
<p v-if="errorCode !== ''" class="error-code">
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

do we need to improve accessibility for this one? I guess some users won't be able to understand the connection between the error and the code. What do you think?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For now, the error is there only for us. I.e. if we get a bug report, we know the code and know right away into which part of the code we should look into. In the future, we might consider adding some documentation where the codes could be listed and users/admins could orient themselves but as since we haven't got any error codes correlating with errors that the users could "fix" themselves I don't see too much value in doing that now.

We've added a crash page to the application. This page is displayed when
the application encounters an error that it cannot recover from.
The first such error we are catching is when spaces loading fails.
@sonarqubecloud
Copy link

sonarqubecloud bot commented Jan 6, 2026

Quality Gate Failed Quality Gate failed

Failed conditions
0.0% Condition Coverage on New Code (required ≥ 50%)
1 New Bugs (required ≤ 0)

See analysis details on SonarQube Cloud

Catch issues before they fail your Quality Gate with our IDE extension SonarQube for IDE

@LukasHirt LukasHirt merged commit 5cbcd69 into master Jan 6, 2026
3 of 4 checks passed
@LukasHirt LukasHirt deleted the feat/crash-page branch January 6, 2026 14:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants