Title: Bug: C# Hello World lesson - grading error due to browser compilation conflict
Severity: High
Mode: C# lessons section � Hello World lesson grading
Lesson ID / File: C# Hello World lesson
Environment: Firefox (any version), Windows (any version)
Date/Time: May 26, 2026
Source Code
(Not applicable � UI / workflow bug)
Steps to Reproduce
1. Navigate to the C# Hello World lesson
2. Complete the exercise
3. Attempt to submit / get graded
4. Observe the error message
Expected Output
The submission should be graded and the result displayed.
Actual Output
The following error is shown:
"Error: Este intento se cargó desde el servidor, pero «Compilar en el navegador» está activado. Haz clic en «Nuevo intento» para regenerar una versión calificada localmente y envía de nuevo."
The user is blocked from completing the lesson.
Suggested Priority
High � blocks the grading workflow, which is a core part of the learning experience. Users cannot complete the lesson.
Additional Notes
�� BUG ��
The error indicates a state mismatch: the attempt was loaded from the server but the UI has "Compile in browser" mode enabled. The user shouldn't need to understand this internal state to complete a lesson.
�� UX SUGGESTION ��
Beyond the bug itself, the overall flow is confusing for beginners. The error message is technical and hard to understand for someone who just started learning programming. Suggested improvements:
- Show a clearer, beginner-friendly message that explains what to do in simple terms
- Ideally, handle the state mismatch automatically so the user doesn't have to click "New attempt"
- The lesson interface should guide the user naturally through what needs to be done, so they focus on learning instead of figuring out how the UI works
- Inexperienced users often give up when faced with confusing technical errors like this one
Title: Bug: C# Hello World lesson - grading error due to browser compilation conflict
Severity: High
Mode: C# lessons section � Hello World lesson grading
Lesson ID / File: C# Hello World lesson
Environment: Firefox (any version), Windows (any version)
Date/Time: May 26, 2026
Source Code
(Not applicable � UI / workflow bug)
Steps to Reproduce
1. Navigate to the C# Hello World lesson
2. Complete the exercise
3. Attempt to submit / get graded
4. Observe the error message
Expected Output
The submission should be graded and the result displayed.
Actual Output
The following error is shown:
"Error: Este intento se cargó desde el servidor, pero «Compilar en el navegador» está activado. Haz clic en «Nuevo intento» para regenerar una versión calificada localmente y envía de nuevo."
The user is blocked from completing the lesson.
Suggested Priority
High � blocks the grading workflow, which is a core part of the learning experience. Users cannot complete the lesson.
Additional Notes
�� BUG ��
The error indicates a state mismatch: the attempt was loaded from the server but the UI has "Compile in browser" mode enabled. The user shouldn't need to understand this internal state to complete a lesson.
�� UX SUGGESTION ��
Beyond the bug itself, the overall flow is confusing for beginners. The error message is technical and hard to understand for someone who just started learning programming. Suggested improvements:
- Show a clearer, beginner-friendly message that explains what to do in simple terms
- Ideally, handle the state mismatch automatically so the user doesn't have to click "New attempt"
- The lesson interface should guide the user naturally through what needs to be done, so they focus on learning instead of figuring out how the UI works
- Inexperienced users often give up when faced with confusing technical errors like this one
Zhekrom
changed title from Bug: Hello World lesson - grading error due to browser compilation conflict to Bug: C# Hello World lesson - grading error due to browser compilation conflict2026-05-26 17:41:50 +00:00
Root cause: the grading router picked the execution path purely from the current "In-browser compile" state. If the attempt was issued by the server (toggle off at load time, or the WASM runtime fell back to a server-cached attempt — likely on Firefox) but the toggle was on at submit time, the browser had no local grading state for that attempt token and blocked the submit with the technical error you saw.
Fix (per the UX suggestion — handled automatically now):
The submit self-heals: it first tries to restore local grading state from the offline cache; otherwise, when online, it sends the submission to the server, which still holds that attempt's tests — no "New attempt" click needed, the student just gets graded.
The error can now only appear when offline with nothing recoverable, and it was reworded in beginner-friendly terms (en + es): it tells the student plainly that the exercise can't be graded offline and to start a new attempt.
Regression tests cover all four routing branches. Will close when the PR merges.
Fix up in spikerj/spikersoft-angular#38.
**Root cause:** the grading router picked the execution path purely from the current "In-browser compile" state. If the attempt was issued by the server (toggle off at load time, or the WASM runtime fell back to a server-cached attempt — likely on Firefox) but the toggle was on at submit time, the browser had no local grading state for that attempt token and blocked the submit with the technical error you saw.
**Fix (per the UX suggestion — handled automatically now):**
- The submit self-heals: it first tries to restore local grading state from the offline cache; otherwise, when online, it sends the submission to the server, which still holds that attempt's tests — no "New attempt" click needed, the student just gets graded.
- The error can now only appear when offline with nothing recoverable, and it was reworded in beginner-friendly terms (en + es): it tells the student plainly that the exercise can't be graded offline and to start a new attempt.
Regression tests cover all four routing branches. Will close when the PR merges.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Title: Bug: C# Hello World lesson - grading error due to browser compilation conflict
Severity: High
Mode: C# lessons section � Hello World lesson grading
Lesson ID / File: C# Hello World lesson
Environment: Firefox (any version), Windows (any version)
Date/Time: May 26, 2026
Source Code
(Not applicable � UI / workflow bug)
Steps to Reproduce
1. Navigate to the C# Hello World lesson
2. Complete the exercise
3. Attempt to submit / get graded
4. Observe the error message
Expected Output
The submission should be graded and the result displayed.
Actual Output
The following error is shown:
"Error: Este intento se cargó desde el servidor, pero «Compilar en el navegador» está activado. Haz clic en «Nuevo intento» para regenerar una versión calificada localmente y envía de nuevo."
The user is blocked from completing the lesson.
Suggested Priority
High � blocks the grading workflow, which is a core part of the learning experience. Users cannot complete the lesson.
Additional Notes
�� BUG ��
The error indicates a state mismatch: the attempt was loaded from the server but the UI has "Compile in browser" mode enabled. The user shouldn't need to understand this internal state to complete a lesson.
�� UX SUGGESTION ��
Beyond the bug itself, the overall flow is confusing for beginners. The error message is technical and hard to understand for someone who just started learning programming. Suggested improvements:
- Show a clearer, beginner-friendly message that explains what to do in simple terms
- Ideally, handle the state mismatch automatically so the user doesn't have to click "New attempt"
- The lesson interface should guide the user naturally through what needs to be done, so they focus on learning instead of figuring out how the UI works
- Inexperienced users often give up when faced with confusing technical errors like this one
Bug: Hello World lesson - grading error due to browser compilation conflictto Bug: C# Hello World lesson - grading error due to browser compilation conflictFix up in spikerj/spikersoft-angular#38.
Root cause: the grading router picked the execution path purely from the current "In-browser compile" state. If the attempt was issued by the server (toggle off at load time, or the WASM runtime fell back to a server-cached attempt — likely on Firefox) but the toggle was on at submit time, the browser had no local grading state for that attempt token and blocked the submit with the technical error you saw.
Fix (per the UX suggestion — handled automatically now):
Regression tests cover all four routing branches. Will close when the PR merges.