Chinese localization contains stray %n causing a crash after VST plug-in scanning — Cubase LE 14.0.4

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

  1. Start Cubase with the interface language set to Chinese.

  2. Open Studio > VST Plug-in Manager.

  3. Enable VST 2 scanning with a previously unlisted VST 2 instrument available in the configured search paths.

  4. 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 %n removed: 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.

It might be helpful to share the .dmp files

I doubt that there will be any fix for Cubase 14.0.40 anymore, because there is at least 14.0.41 available and older releases will not be patched anymore.

So if you already found this it is pretty clear that the translation error is causing the issue. As a first step you should at least update to the latest Cubase 14 release.

However, as @steve wrote, please upload the dmp files.

@steve @JuergenP Thanks for your help. I tried uploading the three .dmp files, but even after ZIP compression, they still exceed the forum’s upload limit.

I’ll also update to Cubase 14.0.41 and test whether the issue still occurs. To clarify my earlier question, I was asking whether this particular issue has already been fixed in a newer release, rather than requesting a patch specifically for 14.0.40.

Thanks again for looking into this.

Please keep in mind that this is a user forum, not the Steinberg Support.

If you’d rather get a response from Steinberg Support you need to open a Support ticket.

@S4kuzy0 You can just use a file sharing service to load the files.

But as mentioned Cubase 14 is not longer being updated