When switching languages while navigating quickly through lessons with the Submit Video panel open, the platform fails to update the displayed content to the newly selected language. The interface continues showing text in the previously active language until a hard refresh or re-entry into the lesson.
Issue Description
In the C# Playground module, if the user opens the Submit Video panel and then changes the language while rapidly browsing lessons, the system does not correctly apply the new language setting. The content remains in the first language (e.g., English) even though the language selector shows Spanish as active. The issue persists across lessons and only resolves after performing a hard refresh or exiting and re-entering the lesson.
Environment
Property
Value
Application
SpikerSoft Learn
Module
C# Lessons and Sandbox
Environment
Production
Browser
Firefox
Operating System
Windows 11
Version
v2026.08.27e
Device
Desktop
Preconditions
User must be logged in and have access to the C# Playground lessons.
Steps to Reproduce
Log in to the SpikerSoft platform.
Navigate to Tools > C# Playground.
Open any lesson (e.g., ¡Hola, Mundo!).
Open the Submit Video panel.
Switch the platform language (e.g., from English to Spanish).
Quickly navigate between lessons while the panel remains open.
Expected Result
The platform should immediately update all lesson content and UI elements to the newly selected language, regardless of navigation speed or open panels.
Actual Result
The content remains in the previously selected language.
The language selector shows the new language as active, but the interface does not reflect the change.
Navigating between lessons or reselecting the language does not fix the issue.
A hard refresh or re-entry into the lesson is required to restore proper localization.
Evidence
The screenshots show the ¡Hola, Mundo! lesson displayed in mixed English and Spanish text after switching languages.
The language selector indicates English, but lesson content remains partially translated.
Impact
Breaks localization consistency across lessons.
Confuses users when switching languages mid-session.
Reduces usability for multilingual users.
Frequency
Always (when switching languages with the video upload panel open)
Reproducibility
100%
Severity
High
Notes
The issue may be caused by incomplete re-rendering of localized components when the Submit Video panel is active. It is recommended to verify event handling for language change triggers and ensure full component refresh across active panels and lesson views
Aditional Note
The issue was already tested on every playground, the behavior remains all across SpikerSoft Playgrounds
## Summary
When switching languages while navigating quickly through lessons with the **Submit Video** panel open, the platform fails to update the displayed content to the newly selected language. The interface continues showing text in the previously active language until a hard refresh or re-entry into the lesson.
## Issue Description
In the **C# Playground** module, if the user opens the **Submit Video** panel and then changes the language while rapidly browsing lessons, the system does not correctly apply the new language setting. The content remains in the first language (e.g., English) even though the language selector shows Spanish as active. The issue persists across lessons and only resolves after performing a hard refresh or exiting and re-entering the lesson.
## Environment
| Property | Value |
|-----------|--------|
| Application | SpikerSoft Learn |
| Module | C# Lessons and Sandbox |
| Environment | Production |
| Browser | Firefox |
| Operating System | Windows 11 |
| Version | v2026.08.27e |
| Device | Desktop |
## Preconditions
User must be logged in and have access to the **C# Playground** lessons.
## Steps to Reproduce
1. Log in to the SpikerSoft platform.
2. Navigate to **Tools > C# Playground**.
3. Open any lesson (e.g., *¡Hola, Mundo!*).
4. Open the **Submit Video** panel.
5. Switch the platform language (e.g., from English to Spanish).
6. Quickly navigate between lessons while the panel remains open.
## Expected Result
The platform should immediately update all lesson content and UI elements to the newly selected language, regardless of navigation speed or open panels.
## Actual Result
- The content remains in the previously selected language.
- The language selector shows the new language as active, but the interface does not reflect the change.
- Navigating between lessons or reselecting the language does not fix the issue.
- A hard refresh or re-entry into the lesson is required to restore proper localization.
## Evidence
- The screenshots show the **¡Hola, Mundo!** lesson displayed in mixed English and Spanish text after switching languages.
- The language selector indicates English, but lesson content remains partially translated.
## Impact
- Breaks localization consistency across lessons.
- Confuses users when switching languages mid-session.
- Reduces usability for multilingual users.
## Frequency
Always (when switching languages with the video upload panel open)
## Reproducibility
100%
## Severity
High
## Notes
The issue may be caused by incomplete re-rendering of localized components when the **Submit Video** panel is active. It is recommended to verify event handling for language change triggers and ensure full component refresh across active panels and lesson views
## Aditional Note
The issue was already tested on every playground, the behavior remains all across SpikerSoft Playgrounds
Confirmed and fixed — your two screenshots were what made this diagnosable, so
thanks for attaching both.
The useful detail in them is that the page is not simply "stuck in the old
language". It is split three ways: the lesson catalog is Spanish (sidebar
titles, the lesson title/description, the editor comment), the attempt is
English (the INSTRUCTIONS block), and the chrome is English — with the
account menu reading Language: English.
That split is the whole clue. The attempt refetches whenever you navigate to a
lesson, so it followed your switch to English. The catalog only refetches on a
single event fired when the language changes — and if that one refetch does not
succeed, nothing ever tries again. Hence "only a hard refresh fixes it".
I found two ways it fails to take, both of which your repro (switching language
while navigating quickly) makes likely:
The refetch swallows its own errors. A catalog request cancelled or
failed mid-navigation consumes the only retry that will ever happen.
When two catalog loads overlap, only the newest is allowed to apply. If the
language-change load loses that race, the code that re-points the open lesson
read the catalog before the winning load had written it, so it re-pinned
the old-language entry and never re-synced.
The fix stops relying on that single event and enforces the rule directly: the
catalog on screen is in the active language, or a request is already in flight
to make it so — retried if it fails, with a cap so a downed backend cannot cause
a request loop.
One thing I have NOT confirmed: which of the two you actually hit. I could
not reproduce your exact click sequence, so I fixed both rather than guess. If
you can still reproduce it after this ships, the most useful thing you could
capture is the browser console during the switch — a warning starting [LanguageRunner] Catalog refresh would tell me it was cause 1.
Also worth knowing for your testing: the video panel being open is probably not
relevant. What matters is switching language while lesson requests are in
flight, so navigating quickly is the real trigger. You may find it reproduces
without opening that panel at all.
Confirmed and fixed — your two screenshots were what made this diagnosable, so
thanks for attaching both.
The useful detail in them is that the page is not simply "stuck in the old
language". It is split three ways: the **lesson catalog is Spanish** (sidebar
titles, the lesson title/description, the editor comment), the **attempt is
English** (the INSTRUCTIONS block), and the **chrome is English** — with the
account menu reading `Language: English`.
That split is the whole clue. The attempt refetches whenever you navigate to a
lesson, so it followed your switch to English. The catalog only refetches on a
single event fired when the language changes — and if that one refetch does not
succeed, nothing ever tries again. Hence "only a hard refresh fixes it".
I found two ways it fails to take, both of which your repro (switching language
while navigating quickly) makes likely:
1. The refetch **swallows its own errors**. A catalog request cancelled or
failed mid-navigation consumes the only retry that will ever happen.
2. When two catalog loads overlap, only the newest is allowed to apply. If the
language-change load loses that race, the code that re-points the open lesson
read the catalog **before** the winning load had written it, so it re-pinned
the old-language entry and never re-synced.
The fix stops relying on that single event and enforces the rule directly: the
catalog on screen is in the active language, or a request is already in flight
to make it so — retried if it fails, with a cap so a downed backend cannot cause
a request loop.
Issue spikerj/spikersoft-angular#905, PR spikerj/spikersoft-angular#906. Both
failure modes are covered by tests that I verified fail against the old code.
**One thing I have NOT confirmed:** which of the two you actually hit. I could
not reproduce your exact click sequence, so I fixed both rather than guess. If
you can still reproduce it after this ships, the most useful thing you could
capture is the browser console during the switch — a warning starting
`[LanguageRunner] Catalog refresh` would tell me it was cause 1.
Also worth knowing for your testing: the video panel being open is probably not
relevant. What matters is switching language while lesson requests are in
flight, so navigating quickly is the real trigger. You may find it reproduces
without opening that panel at all.
Closing — the fix merged in spikerj/spikersoft-angular#910 and #906 (2026-08-31) and is on master. Thanks for the two screenshots; the three-way language split they showed is what made it diagnosable.
Closing — the fix merged in spikerj/spikersoft-angular#910 and #906 (2026-08-31) and is on master. Thanks for the two screenshots; the three-way language split they showed is what made it diagnosable.
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.
Summary
When switching languages while navigating quickly through lessons with the Submit Video panel open, the platform fails to update the displayed content to the newly selected language. The interface continues showing text in the previously active language until a hard refresh or re-entry into the lesson.
Issue Description
In the C# Playground module, if the user opens the Submit Video panel and then changes the language while rapidly browsing lessons, the system does not correctly apply the new language setting. The content remains in the first language (e.g., English) even though the language selector shows Spanish as active. The issue persists across lessons and only resolves after performing a hard refresh or exiting and re-entering the lesson.
Environment
Preconditions
User must be logged in and have access to the C# Playground lessons.
Steps to Reproduce
Expected Result
The platform should immediately update all lesson content and UI elements to the newly selected language, regardless of navigation speed or open panels.
Actual Result
Evidence
Impact
Frequency
Always (when switching languages with the video upload panel open)
Reproducibility
100%
Severity
High
Notes
The issue may be caused by incomplete re-rendering of localized components when the Submit Video panel is active. It is recommended to verify event handling for language change triggers and ensure full component refresh across active panels and lesson views
Aditional Note
The issue was already tested on every playground, the behavior remains all across SpikerSoft Playgrounds
Confirmed and fixed — your two screenshots were what made this diagnosable, so
thanks for attaching both.
The useful detail in them is that the page is not simply "stuck in the old
language". It is split three ways: the lesson catalog is Spanish (sidebar
titles, the lesson title/description, the editor comment), the attempt is
English (the INSTRUCTIONS block), and the chrome is English — with the
account menu reading
Language: English.That split is the whole clue. The attempt refetches whenever you navigate to a
lesson, so it followed your switch to English. The catalog only refetches on a
single event fired when the language changes — and if that one refetch does not
succeed, nothing ever tries again. Hence "only a hard refresh fixes it".
I found two ways it fails to take, both of which your repro (switching language
while navigating quickly) makes likely:
failed mid-navigation consumes the only retry that will ever happen.
language-change load loses that race, the code that re-points the open lesson
read the catalog before the winning load had written it, so it re-pinned
the old-language entry and never re-synced.
The fix stops relying on that single event and enforces the rule directly: the
catalog on screen is in the active language, or a request is already in flight
to make it so — retried if it fails, with a cap so a downed backend cannot cause
a request loop.
Issue spikerj/spikersoft-angular#905, PR spikerj/spikersoft-angular#906. Both
failure modes are covered by tests that I verified fail against the old code.
One thing I have NOT confirmed: which of the two you actually hit. I could
not reproduce your exact click sequence, so I fixed both rather than guess. If
you can still reproduce it after this ships, the most useful thing you could
capture is the browser console during the switch — a warning starting
[LanguageRunner] Catalog refreshwould tell me it was cause 1.Also worth knowing for your testing: the video panel being open is probably not
relevant. What matters is switching language while lesson requests are in
flight, so navigating quickly is the real trigger. You may find it reproduces
without opening that panel at all.
Closing — the fix merged in spikerj/spikersoft-angular#910 and #906 (2026-08-31) and is on master. Thanks for the two screenshots; the three-way language split they showed is what made it diagnosable.