| Previous | Next |
| ERROR_NO_ASSOCIATION | ERROR_DLL_NOT_FOUND |
ERROR_DDE_FAIL
The shell found a handler, but legacy DDE command delivery failed.
ERROR_DDE_FAIL is decimal 1156 (0x484). In shell activation, it means Windows selected an application for the requested file or verb but a Dynamic Data Exchange transaction used to pass the command did not complete. This differs from having no association: a handler exists, yet communication with that handler broke down.
Why DDE may still appear
DDE is an older Windows interprocess communication mechanism, but historical file-type registrations and legacy desktop applications can still use it to activate an existing instance. A modern caller may therefore encounter 1156 even though it never calls a DDE API directly.
Common failure patterns
- the registered application is hung, busy, or displaying a modal dialog
- a stale DDE server name or topic remains after an incomplete upgrade
- the handler starts but exits before acknowledging the transaction
- the shell command contains quoting or substitution errors for the selected verb
- session, desktop, or integrity boundaries prevent communication with the existing instance
- application startup exceeds the activation timeout
Useful telemetry
- target document or URI, selected verb, and complete
SHELLEXECUTEINFOinputs - resolved handler executable and file-type registration identity
- existing handler process IDs, sessions, responsiveness, and start times
- whether a fresh handler process was launched before the failure
- numeric error 1156 and any product-specific activation log from the target application
Capture the state of the existing application before killing it. A dump of a hung handler often explains why DDE stopped responding, while simply restarting it erases the evidence and makes the incident appear intermittent.
Troubleshooting sequence
- repeat the same verb interactively under the caller's account
- check whether terminating only the stale handler instance makes activation succeed
- validate the registered DDE application, topic, and command strings against the installed version
- test a direct documented command-line invocation to separate application startup from DDE transport
- repair or reinstall the owning application if registration points to obsolete components
Handling and modernization
A caller may retry once after confirming that the previous handler instance has exited or recovered. Repeated shell launches are dangerous because each attempt can start another partially initialized process. For software you control, prefer a documented single-instance IPC channel, COM activation, or an explicit command-line protocol rather than new DDE registration.
Administrators should avoid deleting DDE registry values in isolation. Some legacy programs require them, and an incomplete edit can convert a communication failure into a different activation error. Repair the complete file-type registration from the product's installer.
Nearby error codes
ERROR_NO_ASSOCIATION means no application was selected. ERROR_FILE_NOT_FOUND can indicate a missing handler executable or document. ERROR_CANCELLED may report a user-aborted shell prompt. Error 1156 specifically indicates failure while sending the command to an already selected application.
Example
A document-management system opens a spreadsheet through the shell. An existing spreadsheet process is blocked by an unseen modal dialog in another desktop session, so the DDE activation transaction times out and returns 1156. Moving the integration to the application's supported automation interface removes dependence on a responsive interactive DDE server.
References
- Microsoft: System Error Codes (1000–1299)
- Microsoft: ShellExecuteExW function
- Microsoft: About Dynamic Data Exchange
Looking for a different code? Search another status or error code.