Site icon EfmSoft

What does Windows error code 559 (ERROR_BAD_FUNCTION_TABLE) mean?

 
Previous Next
ERROR_UNEXPECTED_MM_EXTEND_ERR ERROR_NO_GUID_TRANSLATION

ERROR_BAD_FUNCTION_TABLE

What this result means

ERROR_BAD_FUNCTION_TABLE is a Windows system result. The exception unwinder found malformed or inconsistent function-table metadata. On 64-bit Windows this metadata describes nonleaf stack frames and is essential for exceptions, stack walking, and debugging.

Why it can appear

Diagnostic workflow

  1. capture the failing instruction, module base, runtime-function entry, and unwind record bytes
  2. verify digital signatures and image integrity
  3. inspect JIT calls to RtlAddFunctionTable or RtlInstallFunctionTableCallback
  4. check that executable ranges and metadata lifetimes match exactly

Correct recovery and handling

Repair or update the module that owns the function table. JITs must unregister tables before releasing code and must publish fully initialized metadata before execution. Avoid continuing after unwind metadata corruption.

Administrator and support checklist

Developer guidance

When handling it, log the API or subsystem that returned it, the first lower-level failure, relevant object identifiers, process and thread context, and safe operation parameters. Preserve the original numeric Value rather than converting it to an unrelated HRESULT or NTSTATUS. Retry it only when the evidence shows a transient dependency; deterministic it cases involving policy, format, compatibility, or integrity should fail fast.

What to record in telemetry

Example investigation pattern

Investigate it by reproducing the operation once with detailed logging, then correlate that timestamp with Windows events and lower-layer traces. Compare the affected object or process with a known-good one, change one variable at a time, and stop retrying When it is deterministic. That method keeps the first relevant failure from being hidden by secondary cleanup messages.

Related and easily confused conditions

A bad function table can make an otherwise recoverable exception fatal because Windows cannot safely locate caller frames or cleanup handlers.

Operational note

Do not diagnose it from its text alone. The result can cross subsystem boundaries and may summarize an earlier, more specific event. The first failure in time is normally more useful than the last message printed during cleanup.

References


Looking for a different code? Search another status or error code.

Exit mobile version