Knowledge Base
Last Updated: 2026-07-30
In UDS semantics, NRC 0x78 indicates that the ECU has not completed processing the request and will provide a later response.
Interpret the retained observation before assigning a diagnostic conclusion.
Observed
Multi-stage NRC 0x78 pending flow with branch ambiguity
Supported interpretation
Only the retained, approved observation is supported.
Not established
Repeated pending was flattened into a timeout-like symptom, while the actual wire story splits between recovery and degradation depending on the branch.
Recommended next check
Verify the first terminal response after each pending loop before retrying the operation or blaming ECU processing time alone.
These panels are reviewed, public-safe, role-based event summaries. They are not raw packet captures or screenshots.
Wireshark Evidence Window: Multi-Stage Pending
Generated from the redacted sample for EVID-NRC78-ADC-PENDING-01.

Evidence reference: EVID-NRC78-ADC-PENDING-01
Derived from: original frame window 132-823
Normalized by: DiagAgent
Original packet count: 40,647
Wireshark Evidence Window: Late Pending Then Positive
Generated from the redacted sample for EVID-LATE-PENDING-SRS-01.

Evidence reference: EVID-LATE-PENDING-SRS-01
Derived from: original frame window 2432-2448
Normalized by: DiagAgent
Original packet count: sample window extracted from a longer SRS stream
Wireshark Evidence Window: Pending To Failure
Generated from the redacted sample for EVID-NRC78-FAILURE-BRANCH-01.

Evidence reference: EVID-NRC78-FAILURE-BRANCH-01
Derived from: original frame window 568-713
Normalized by: DiagAgent
Original packet count: sample window extracted from a longer failure capture
Analyzer Summary Screenshot
Generated from the redacted teaching windows used by the NRC 78 page.

Evidence reference: EVID-NRC78-ADC-PENDING-01 + EVID-LATE-PENDING-SRS-01 + EVID-NRC78-FAILURE-BRANCH-01
Derived from: EVID-NRC78-ADC-PENDING-01 + EVID-LATE-PENDING-SRS-01 + EVID-NRC78-FAILURE-BRANCH-01
Normalized by: DiagAgent
Original packet count: 40,647 + longer SRS stream + longer failure capture
Read this as a role-based swimlane: it shows observed request/response order, not an unproven causal chain.
Observed: Multi-stage NRC 0x78 pending flow with branch ambiguity
Not established: Repeated pending was flattened into a timeout-like symptom, while the actual wire story splits between recovery and degradation depending on the branch.
Next check: Verify the first terminal response after each pending loop before retrying the operation or blaming ECU processing time alone.
Tester
Gateway / ECU
Evidence boundary
Read / flash request starts
NRC 0x78 pending
NRC 0x78 pending repeats
Positive reply or harder failure
No. It means the request is still pending under the UDS protocol. The important question is what happened after the pending phase.
Best when a flashing or erase operation stalls and the tool only shows a timeout.
Each example identifies whether it is a controlled simulator observation or a redacted field-evidence window. The evidence record bounds what the sequence can and cannot establish.
ADC log extraction with repeated pending states on multiple SIDs
Evidence reference: EVID-NRC78-ADC-PENDING-01
Node roles in this case
A long v3 DoIP capture where response-pending appears in more than one stage, which makes it a useful anti-misread example.
Evidence signals
Timeline
Real Timeline
Sanitized Message Snippets
Why the analyzer concluded this
This supports the KB claim that NRC 78 should be read as a state transition problem, not as a binary success-or-failure marker.
A clean readout window later transitions into pending before recovering
Evidence reference: EVID-LATE-PENDING-SRS-01
Node roles in this case
A short derived window from a longer real capture that shows a normal read sequence entering repeated pending states before a positive response returns.
Evidence signals
Timeline
Real Timeline
Sanitized Message Snippets
Why the analyzer concluded this
This is a strong public-safe sample because it teaches the pending-state concept without requiring brand-specific addresses or full vehicle context.
A long pending phase can branch into a harder failure instead of recovery
Evidence reference: EVID-NRC78-FAILURE-BRANCH-01
Node roles in this case
This case fills the key missing contrast for the NRC 78 page. The same workflow that spends a long time in Response Pending does not recover cleanly; it later surfaces a harder failure condition instead.
Evidence signals
Timeline
Real Timeline
Sanitized Message Snippets
Why the analyzer concluded this
With this sample, the NRC 78 page can now show both branches: pending that eventually recovers and pending that turns into failure.
These packet-level checkpoints are the smallest proof units behind the article narrative.
Frame 351
tester -> target node
SID 0x22 request enters the readout workflow.
Use this as the anchor request before reading any pending state.
Frame 352
target node -> tester
SID 0x22 returns NRC 0x78.
Confirms the ECU kept the request alive instead of rejecting it outright.
Frame 353
target node -> tester
The next branch resolves to SID 0x62 or degrades later.
This is the decisive frame family for telling recovery from false optimism.
This is the condensed engineering verdict the analyzer would put in front of the operator.
Summary judgment
repeated NRC 0x78 states were detected across more than one service stage; do not treat this as a single timeout event.
Likely fault direction
distinguish pending-then-recovery from pending-then-failure by checking the first terminal response after the loop.
Top action
inspect the first branch that breaks the repeated 0x78 pattern before retrying the workflow.
These are cases where the tool symptom can point in the wrong direction unless the packet timeline is checked.
Symptom: The tool shows one generic timeout banner.
Packet truth: The capture contains several NRC 0x78 responses on different services, and one branch later recovers cleanly.
Risk: The operator may restart the wrong phase because the UI symptom hides the branch split.
Symptom: Repeated pending is treated as proof that the ECU is still healthy and will eventually finish.
Packet truth: One sample in this page recovers, while another degrades into a harder failure state.
Risk: The retry decision becomes too optimistic even though packet evidence is mixed.
Use this order in real troubleshooting so packet evidence narrows the branch before repair effort expands.
These are the interpretation traps that real packet evidence helps avoid.
It commonly appears during erase memory, download, or other heavy operations where the ECU cannot return a positive response immediately.
The real problem is usually not the 0x78 itself, but whether the client waited long enough and what the ECU emitted after that pending response.
Rebuild the timeline around the pending response and confirm whether the session ended with a positive response, another negative response, or a transport-level interruption.
This is especially important when a diagnostic tool reports a timeout without preserving the lower-level exchange.
Some tools collapse a long pending phase into a single timeout message, which hides whether the ECU kept responding correctly or whether the transport path died first.
If the capture includes repeated 0x78 responses, compare spacing and final outcome instead of assuming every pending loop means the ECU is healthy.
The key evidence is the request that triggered the pending state, the number of pending responses, the gap between them, and the first response that breaks the loop.
That final transition often reveals whether the issue is ECU-side processing, tester impatience, or a broken session after erase or download starts.
Many tools collapse repeated pending responses into a generic timeout and hide whether the ECU later returned success, a new failure, or nothing at all.
Use nearby guides to move from protocol filtering to root-cause troubleshooting without leaving the knowledge base.