Knowledge Base Article
Why do I unexpectedly observe intermittent DDM Errors?
Description
Beginning January 10, 2026, executing commands in the terminal or GUI of Quartus® Prime Pro Edition software, Quartus Embedded Edition software or select standalone tools may cause the software or tool to crash with an error similar to the crash signature shown below. This error affects:
- Quartus Prime Pro Software versions v23.3 through v25.3.1
- Standalone Quartus Prime Pro Programmer v23.3 through v25.3.1
- Standalone Quartus Prime Pro Embedded Edition v25.3 and v25.3.1
- Standalone Quartus Prime Pro Power Thermal Analyzer v25.3 through v25.3.1
This issue is not observed in Quartus Prime Pro Edition versions 23.2 or prior or Quartus Prime Standard Edition.
Crash Signature:
Error (22912): Unhandled exception:
Fatal Error: Assertion failed tools/cpp/ddm/ddm_assessor.cpp:53: DDM_T::verify_token(token) : Cannot identify the client
from function assertion_error in tools/cpp/ddm_report/ddm_report_msg.cpp@465
*** Fatal Error: Program termination requested
***
*** Below is the stack trace at the time the error occurred.
*** The lines beginning "Err Handler" represent frames relating
*** to generating this report.
*** The point at which the error occurred is somewhere after these lines.
*** There may be a few frames representing standard/library code
*** before the Quartus frames begin.
*** The search for the error should begin with the Quartus frames.
*** Unwinder: libunwind
*** Stack depth: 15
Quartus 0x24e67: err_terminator() + 0x1bc (ccl_err)
Quartus 0xb036a: __cxxabiv1::__terminate(void (*)()) + 0xa (stdc++)
Quartus 0xb03d5: (stdc++)
Quartus 0xb0628: (stdc++)
Quartus 0x1680d: void ddm_throw<DDM_RUNTIME_ERROR>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) + 0x26d (ddm_report)
Quartus 0x13fae: DDM_REPORT::DDM_ASSERTION_HANDLER::assertion_error(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) const + 0xde (ddm_report)
Quartus 0x12a52: DDM_REPORT::ASSERTION_HANDLER::error(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) + 0x72 (ddm_report)
Quartus 0x13e64: DDM_REPORT::detail::assert_at_line(char const*, char const*, int, char const*, ...) + 0x1b4 (ddm_report)
Quartus 0x205fb0: ddm_set_lassessor(DDM_T_ASSESSOR*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) + 0x60 (ddm)
Quartus 0xf4445: DMS_MANAGER::DMS_MANAGER() + 0x5c5 (dni_dms)
Quartus 0xf45b2: DMS_MANAGER::get() + 0x7a (dni_dms)
Quartus 0xf6db4: _GLOBAL__sub_I_dms_manager.cpp + 0x58 (dni_dms)
Quartus 0x647e: (ld-linux-x86-64)
Quartus 0x6568: (ld-linux-x86-64)
Quartus 0x202ca: (ld-linux-x86-64)
Resolution
To work around this problem:
- For Windows machines
- Download and unzip the Quartus Prime Pro version zip file that matches your Quartus Prime Pro version from this KDB.
- Double click on the executable ending in “windows.exe”. When the GUI pops up, press Next. Note that the GUI may look slightly different depending on the version of Quartus you are using.
- Accept the license agreement
- Specify the directory where the patch needs to be applied which may be a different location than Quartus install if you have standalone tools in a different directory from your Quartus Prime Pro software installation. Keep “Allow Patch to be uninstalled” selected.
- Select the software in which to install the patch:
- The patch will install in the directory of the software or tool you have selected. You will see an uninstall directory for the patch in your software or tool folder where patch is installed; it will contain an executable to uninstall the patch if required for any reason.
- To confirm patch is installed, you can run quartus_sh -v or corresponding version command for your tool via command line. Alternatively, you can Open Quartus in the GUI and select Help → About Quartus Prime in the main menu. If you are opening up a standalone tool you will navigate to Help-> About <tool_name>.
For the Command Line Implementation of the patch in Windows, use the following command:
<patch_filename.exe> --mode unattended --installdir <your_install_directory> --accept_eula 1 --patch_to [quartus|qprogrammer|qemb|pta]
# An example to patch Quartus Prime Pro Edition Software v25.3:
quartus-25.3-0.27-windows.exe --mode unattended --installdir /tmp/altera_pro/25.3 --accept_eula 1
# An example to patch the Standalone Programmer for Quartus Prime Pro Software v25.3:
quartus-25.3-0.27-windows.exe --mode unattended --installdir /tmp/altera_pro/25.3 --accept_eula 1 --patch_to qprogrammer
- For Linux machines:
- Download and unzip the Quartus Prime Pro version zip file that matches your Quartus Prime Pro version from this KDB.
- Ensure you run chmod +x on the file ending with linux.run.
- Run in the command line: ./<installation_patch_run_file>. When GUI pops up, press Next. Note that the GUI may look slightly different depending on the version of Quartus you are using.
- Accept the license agreement
- Specify the directory where the patch needs to be applied which may be a different location than Quartus install if you have standalone tools in a different directory from your Quartus Prime Pro software installation. Keep “Allow Patch to be uninstalled” selected.
-
- Select the software in which to install the patch:
-
- The patch will install in the directory of the software or tool you have selected. You will see an uninstall directory for the patch in your software or tool folder where patch installed; it will contain an executable to uninstall the patch if required for any reason.
- To confirm patch is installed, you can run ./quartus_sh -v or corresponding version command for your tool via command line. Alternatively, you can Open Quartus in the GUI and select Help → About Quartus Prime in the main menu. If you are opening up a standalone tool you will navigate to Help-> About <tool_name>.
For the Command Line Implementation of the patch in Linux, use the following command:
./<patch_filename.run> --mode unattended --installdir <your_install_directory> --accept_eula 1 --patch_to [quartus|qprogrammer|qemb|pta]
# An example to patch Quartus Prime Pro Edition v25.3:
./quartus-25.3-0.27-linux.run --mode unattended --installdir /tmp/altera_pro/25.3 --accept_eula 1
# An example to patch the Standalone Programmer for Quartus Prime Pro Software v25.3:
./quartus-25.3-0.27-linux.run --mode unattended --installdir /tmp/altera_pro/25.3 --accept_eula 1 --patch_to qprogrammer
This issue is scheduled to be fixed in a future release of the Quartus Prime Pro Edition Software.
The below table lists the patches that are available and the associated patch number. The patch zip files are attached to the KDB below:
|
Quartus Prime Pro Edition Version |
Patch Number |
|
23.3 | |
|
23.4 | |
|
23.4.1 | |
|
24.1 | |
|
24.2 | |
|
24.3 | |
|
24.3.1 | |
|
25.1 | |
|
25.1.1 | |
|
25.3 | |
|
25.3.1 |