| Previous | Next |
| ERROR_MORE_DATA | ERROR_VC_DISCONNECTED |
ERROR_NO_WORK_DONE
The operation produced no effective change
ERROR_NO_WORK_DONE is a Win32 result associated with batch, maintenance, and transactional operations. When ERROR_NO_WORK_DONE is returned, diagnosis should begin with the exact API, target object, and operation that produced it rather than with the message text alone.
What the result means
The request completed without performing any work and cleanup was applied. For ERROR_NO_WORK_DONE, the practical meaning depends on the caller and on whether the affected object is local, remote, removable, policy-managed, or handled asynchronously. Diagnostics for ERROR_NO_WORK_DONE should retain its symbolic name, numeric value, and the operation name together.
What to check
- Determine whether the input set was empty or all candidates were filtered out.
- Check preconditions and policy rules that may have made every item ineligible.
- Distinguish an intentional no-op from a request that unexpectedly matched nothing.
- Log counts for examined, skipped, changed, and failed items.
Recommended handling
Treat the result according to the operation contract. A no-op can be success for idempotent maintenance, but it should be surfaced when the caller expected at least one change.
Developer notes
Code handling ERROR_NO_WORK_DONE should capture the failing API, resolved path or device identity, requested access, process identity, and the first observed error. After a call that reports ERROR_NO_WORK_DONE, read GetLastError() immediately because later cleanup or logging can overwrite the value. Retry ERROR_NO_WORK_DONE only when the specific condition is documented as transient, using a bounded delay and cancellation support.
References
- Microsoft: System error codes relevant to ERROR_NO_WORK_DONE
- Microsoft: File management context for ERROR_NO_WORK_DONE
Looking for a different code? Search another status or error code.