Summary
A std::bad_cast exception occurs when reopening Timing → Shift Times while using the Português (Brasil) (pt_BR) locale.
The crash is reproducible only after the dialog has been used to perform a frame-based shift greater than one frame. It does not occur when shifting by time.
This appears to be similar to issue #211, although the reproduction steps are different.
Environment
Executable
Operating System
UI language
- Português (Brasil) (pt_BR)
Steps to reproduce
- Delete
shift_history.json.
- Start Aegisub.
- Open Timing → Shift Times.
- Under Shift by, select Frames.
- Enter a value greater than 1 (for example, 2).
- Click OK.
- Close the Shift Times dialog.
- Open Timing → Shift Times again.
Actual result
Aegisub throws:
and the dialog cannot be opened.
Expected result
The Shift Times dialog should reopen normally.
Additional observations
- Shifting by 1 frame does not reproduce the issue.
- Shifting by time does not reproduce the issue.
- Deleting
shift_history.json restores normal behavior until another frame-based shift (>1 frame) is saved.
Once the crash starts occurring:
- pt_BR → ❌ Shift Times always crashes.
- Switching the UI language to pt_PT (or another tested locale) → ✅ Shift Times opens normally.
- Switching back to pt_BR without changing anything else → ❌ the crash immediately returns.
The executable, configuration, and shift_history.json remain exactly the same throughout these tests; only the selected UI language changes.
Investigation
All tests were performed using the same executable (Aegisub-9794-migration03).
Only the translation catalog or the selected UI language was changed.
| Translation |
Result |
| Original pt_BR |
❌ Crash |
| pt_PT |
✅ Works |
| Other tested locales |
✅ Work correctly |
| Modified pt_BR (plural entries removed) |
✅ Works |
| Modified pt_BR (all translation entries preserved, workaround applied) |
✅ Works |
The workaround that avoids the crash displays the Shift Times history as:
Sem título, 10 frames trás, i+f, todas
Sem título, 3 frames trás, i+f, todas
Sem título, 2 frames trás, i+f, todas
Only the word "frames" remains untranslated; the rest of the history entry is still displayed in Portuguese.
Additional information
The same original pt_BR/aegisub.mo that consistently reproduces this issue on Aegisub-9794-migration03 does not reproduce the issue when used with:
- Aegisub-9820-cibuilds-8165f1ad5
This report is specifically about the migration03 build. The comparison above is provided only as additional information.
Related issue
Possibly related to #211:
Crash (std::bad_cast) when opening "Shift Times" with zh_TW locale on migration03-02.
Summary
A
std::bad_castexception occurs when reopening Timing → Shift Times while using the Português (Brasil) (pt_BR) locale.The crash is reproducible only after the dialog has been used to perform a frame-based shift greater than one frame. It does not occur when shifting by time.
This appears to be similar to issue #211, although the reproduction steps are different.
Environment
Executable
Operating System
UI language
Steps to reproduce
shift_history.json.Actual result
Aegisub throws:
and the dialog cannot be opened.
Expected result
The Shift Times dialog should reopen normally.
Additional observations
shift_history.jsonrestores normal behavior until another frame-based shift (>1 frame) is saved.Once the crash starts occurring:
The executable, configuration, and
shift_history.jsonremain exactly the same throughout these tests; only the selected UI language changes.Investigation
All tests were performed using the same executable (Aegisub-9794-migration03).
Only the translation catalog or the selected UI language was changed.
The workaround that avoids the crash displays the Shift Times history as:
Only the word "frames" remains untranslated; the rest of the history entry is still displayed in Portuguese.
Additional information
The same original
pt_BR/aegisub.mothat consistently reproduces this issue on Aegisub-9794-migration03 does not reproduce the issue when used with:This report is specifically about the migration03 build. The comparison above is provided only as additional information.
Related issue
Possibly related to #211:
Crash (
std::bad_cast) when opening "Shift Times" withzh_TWlocale on migration03-02.