Hello Steinberg team,
Cubase LE 14.0.40 crashes when enabling VST 2 scanning with the Chinese interface. Switching the interface to English allows scanning to complete.
Local analysis identified an extra %n format specifier in the Chinese translation of the “new plug-ins found” message. The executable resource, an independent formatting test, and three crash dumps provide consistent evidence that this malformed translation causes the observed termination.
Environment
-
Cubase LE 14, executable file version 14.0.40.369.
-
Windows, OS build 26200.9457, version 25H2.
-
Cubase interface language: Chinese.
-
Third-party plug-ins involved in the setup: Crypton Mutant VSTi and Piapro Studio VSTi.
-
Cubase14.exe has a valid Steinberg Authenticode signature.
Steps observed
-
Start Cubase with the interface language set to Chinese.
-
Open Studio > VST Plug-in Manager.
-
Enable VST 2 scanning with a previously unlisted VST 2 instrument available in the configured search paths.
-
Allow the scan to proceed.
Actual result: Cubase terminates before successfully displaying the new-plug-in summary.
Expected result: Cubase completes scanning and displays the number of newly discovered effects and instruments.
Changing the interface language to English and restarting allowed scanning to complete on this system. The failure appears associated with formatting the discovery summary, so a scan that finds no new plug-ins may not exercise the same path.
Malformed translation
In Cubase14.exe, resource RT_RCDATA / TRANSLATION.XML / 1031 contains:
<us>%d new VST effect(s) and\n%d new VST instrument(s) found.</us>
<zh>发现 %d 个新的 VST 效果和\n%n%d 个新的 VST 乐器。</zh>
The Chinese entry contains an extra %n between \n and the second %d. The proposed correction is:
<zh>发现 %d 个新的 VST 效果和\n%d 个新的 VST 乐器。</zh>
Here, \n is shown as the literal escape sequence in the XML resource. %n is a printf write-count conversion, not a newline. Microsoft’s CRT disables %n by default and invokes the invalid-parameter handler when it encounters it.
Reference:
Independent verification
The actual English and Chinese resource strings were tested with the local UCRT function __stdio_common_vswprintf, using identical effect/instrument counts and converting the resource’s newline escape to an actual newline.
-
Original English string: formatting succeeds.
-
Original Chinese string: invalid-parameter handler is invoked; formatting fails.
-
Chinese string with only the extra
%nremoved: formatting succeeds.
A recording invalid-parameter handler was used only in the separate diagnostic process. Cubase itself was not patched, and its runtime settings were not modified.
Crash-dump evidence
Three local dumps were examined:
-
Cubase14.exe.4556.dmp
-
Cubase14.exe.52128.dmp
-
Cubase14.exe.44864.dmp
All show exception code 0xc0000409 with fast-fail reason 5, corresponding to FAST_FAIL_INVALID_ARG.
In the latest dump, the faulting instruction is inside UCRT’s _invoke_watson, with stack return addresses in wide-character formatting code. All three dumps contain the partially formatted Chinese discovery message ending at the newline immediately before the erroneous %n. The latest dump’s formatting state also retains the character n.
The complete original format string was obtained from the executable resource, not recovered in full from the dump. These findings strongly support the localization error as the cause of this crash.
Requested action
Please remove the stray %n, check translated format strings against their source placeholders, and verify discovery-summary formatting in the Chinese interface.
Could you confirm whether this issue is already tracked or fixed, and identify the first fixed version? I have verified the affected resource in 14.0.40.369 only; I have not tested 14.0.41 or Cubase 15.
The temporary workaround is to use the English interface. Crash dumps and further diagnostic details are available if needed.
Thank you.