Report DTC by Severity Mask Record (0x08) in UDS Protocol – Service 0x19 Explained with Examples
Hello, automotive diagnostics enthusiasts! In this blog post, I will walk you through Report DTC by Severity Mask Record (0x08) in UDS – one of the lesser-known but highly usefu
l sub-functions of the UDS protocol: Report DTC by Severity Mask Record (0x08). This sub-function, part of Service 0x19, plays a crucial role in filtering Diagnostic Trouble Codes (DTCs) based on their severity levels. Understanding how this works can help you diagnose critical issues more efficiently and prioritize repairs effectively. I’ll explain what this service does, how it operates, and what kind of responses to expect from the ECU. You’ll also see real-world examples and communication flow for better clarity. By the end of this post, you’ll gain practical insights into handling DTCs using this powerful UDS sub-function. Let’s dive in!Table of contents
- Report DTC by Severity Mask Record (0x08) in UDS Protocol – Service 0x19 Explained with Examples
- Introduction to Report DTC by Severity Mask Record (0x08): UDS Protocol Service 0x19
- Why is Report DTC by Severity Mask Record (0x08) needed in UDS Protocol: Service 0x19?
- Syntax of Report DTC by Severity Mask Record (SBFID-0x08) of SID-0x19
- Syntax of 0x19 SID Positive Response Message
- Syntax of 0x19 SID Negative Response Message
- Example of Report DTC by Severity Mask Record (0x08) in UDS Protocol: Service 0x19
Introduction to Report DTC by Severity Mask Record (0x08): UDS Protocol Service 0x19
Welcome to this deep dive into one of the key diagnostic functions in the UDS protocol! In this article, we’ll focus on Report DTC by Severity Mask Record (0x08), a powerful sub-function of Service 0x19. This service helps diagnostic tools retrieve specific Diagnostic Trouble Codes (DTCs) based on how severe the issues are. Instead of displaying all DTCs at once, it filters them according to a severity mask, making diagnostics more efficient and targeted. This is especially valuable in modern vehicles with complex ECUs and multiple fault entries. We’ll cover the purpose, request/response structure, and practical examples to help you understand it better. If you’re working with vehicle diagnostics or ECU communication, this topic is a must-know!
What is Report DTC by Severity Mask Record (0x08) in UDS Protocol: Service 0x19?
Report DTC by Severity Mask Record (0x08) is a sub-function of Service 0x19 (ReadDTCInformation) in the UDS (Unified Diagnostic Services) protocol, used in automotive ECUs. This specific sub-function allows a diagnostic tool to request a filtered list of Diagnostic Trouble Codes (DTCs) based on a severity mask. Each DTC stored in the ECU is associated with a severity level that indicates how critical the fault is – ranging from minor to highly severe. By applying a severity mask in the request, technicians can retrieve only those DTCs that match the selected severity levels, helping prioritize issues that need immediate attention. This is especially useful in complex vehicles where numerous faults may be logged, allowing for more efficient diagnostics and quicker repairs.
Why is Report DTC by Severity Mask Record (0x08) needed in UDS Protocol: Service 0x19?
Below is an explanation of why Report DTC by Severity Mask Record (0x08) is needed in UDS Protocol: Service 0x19, broken down into clear points:
1. Efficient Fault Prioritization
The Report DTC by Severity Mask Record (0x08) is essential because it allows diagnostic tools to filter Diagnostic Trouble Codes (DTCs) based on their severity levels. Without this feature, all DTCs are retrieved together, irrespective of whether they represent critical or minor issues. This can lead to a flood of data, making it harder for technicians to identify which problems require immediate attention. By applying a severity mask, the diagnostic tool can focus only on the most critical issues, helping technicians prioritize faults that could affect vehicle safety and performance. This capability makes the diagnostic process more targeted and efficient, ensuring that high-priority problems are addressed first.
2. Reduces Diagnostic Time
One of the key benefits of the severity mask feature is that it significantly reduces the time spent analyzing DTCs. Without the ability to filter by severity, technicians would have to go through a long list of DTCs, many of which may not be relevant to the vehicle’s current operational state. By narrowing down the DTCs to only those that are considered severe, this feature helps save diagnostic time. Technicians can focus on the most pressing issues without wasting time on less critical faults. This streamlined process enables quicker diagnosis and repair, making it especially valuable in busy automotive service environments where time is crucial.
3. Enhances Diagnostic Accuracy
By filtering out minor issues and focusing only on severe faults, the Report DTC by Severity Mask Record (0x08) improves the accuracy of the diagnostic process. It ensures that technicians are not distracted by non-urgent faults that could be irrelevant to the immediate performance of the vehicle. For example, a minor issue with a sensor that doesn’t affect vehicle functionality may not need to be addressed right away, while a more serious issue like an engine misfire should be prioritized. This helps in providing a more accurate and relevant diagnosis, leading to better decision-making and more focused repairs.
4. Optimizes System Performance
Modern vehicles have multiple ECUs (Electronic Control Units), each capable of storing numerous DTCs. Without filtering based on severity, diagnostic tools would have to retrieve all available DTCs, regardless of relevance. This could overload the system, slowing down the diagnostic process. The severity mask helps optimize both the vehicle’s diagnostic system and the technician’s workflow by querying only the DTCs that are of immediate concern. By reducing unnecessary data retrieval, this feature ensures that the diagnostic system runs smoothly, and the technician is not overwhelmed with irrelevant information.
5. Cost-Effective for Repairs
The Report DTC by Severity Mask Record (0x08) also contributes to cost-effective repairs by enabling technicians to focus on the most critical issues first. For example, if a vehicle has several logged faults, some may be trivial and not directly affect its performance, while others may be serious and require urgent attention. By using severity masks to prioritize the most pressing faults, technicians can prevent unnecessary repairs on minor issues, ultimately reducing both labor costs and parts costs. This process also allows customers to receive quicker service, enhancing overall satisfaction and reducing the cost of vehicle maintenance or repair.
6. Improves Vehicle Safety
The ability to filter Diagnostic Trouble Codes (DTCs) based on their severity directly impacts vehicle safety. Severe DTCs often indicate critical faults that could affect the vehicle’s performance, such as engine malfunctions, braking system issues, or airbag problems. By prioritizing these codes, the diagnostic tool ensures that technicians address safety-related issues first, reducing the risk of accidents caused by undetected faults. This capability is crucial in modern vehicles that rely heavily on complex ECUs for maintaining safe driving conditions, making the diagnostic process more focused on preventing safety hazards.
7. Facilitates Compliance with Regulatory Standards
In many regions, vehicles are required to meet specific regulatory standards for emissions and safety. Severe faults, such as those affecting the emission control system, can cause the vehicle to fail inspections or violate legal requirements. By focusing on severity-based filtering, the Report DTC by Severity Mask Record (0x08) helps identify faults that could affect the vehicle’s compliance with these standards. This enables technicians to address critical issues that could lead to failed inspections or legal penalties, ensuring that vehicles remain compliant with local regulations and environmental standards.
Report DTC by Severity Mask Record (0x08): 0x19 SID in UDS Protocol
When using the Report DTC by Severity Mask Record feature in the UDS protocol, the client can request a list of Diagnostic Trouble Codes (DTCs) that meet specific criteria based on their severity and status. This request is made by setting the sub-function byte to reportDTCBySeverityMaskRecord. The client can specify a severity mask to filter DTCs based on their severity and status. The status can include values like “testFailed,” “confirmed,” or other specific states defined in the request.
The server processes this request by performing a bitwise logical AND operation between the DTCSeverityMask and DTCStatusMask from the client’s request and the actual severity and statusOfDTC associated with each DTC supported by the server. The result of this operation determines which DTCs should be included in the response. Essentially, the server checks if both the severity and status conditions match based on the following logic:
((statusOfDTC & DTCStatusMask) != 0) && ((severity & DTCSeverityMask) != 0)
If the status mask in the client’s request contains bits that the server does not support, the server will only process and return information for the bits it can handle. If no DTCs match the criteria provided in the request, the server will send a response without any DTC or status information, following the DTCStatusAvailabilityMask byte in the positive response message.
This mechanism helps the client receive a filtered list of DTCs, focusing only on those with the specified severity and status, improving diagnostic efficiency and allowing technicians to address the most relevant issues quickly.
Syntax of Report DTC by Severity Mask Record (SBFID-0x08) of SID-0x19
This parameter instructs the server to send the client a list of Diagnostic Trouble Codes (DTCs) along with their statuses that match the severity mask record defined by the client.
Data byte | Parameter Name | Byte Value |
#1 | Read DTC Information Request SID | 0x19 |
#2 | sub-function = [ report Type = Report DTC By Severity Mask Record ] | 0x08 |
#3 #4 | DTCSeverityMaskRecord[] = [ DTCSeverityMask DTCStatusMask ] | 0x00 – 0xFF 0x00 – 0xFF |
SBFID (0x08) Request Message Data-Parameter of SID (0x19)
DTC Severity Mask Record [DTC Severity Mask, DTC Status Mask]
The DTCSeverityMaskRecord is a 2-byte value that includes both the DTCSeverityMask and the DTCStatusMask.
DTC Severity Mask
The DTCSeverityMask consists of three severity bits. The specific definitions for each of these bits are detailed in section D.3. This byte is included in the request message, allowing the client to retrieve DTC information for those DTCs whose severity matches the DTCSeverityMask. A DTC’s severity matches the mask if at least one of the DTC’s actual severity bits is set to ‘1’, and the corresponding severity bit in the DTCSeverityMask is also ‘1’. In other words, if the DTCSeverityMask is logically ANDed with the DTC’s actual severity, and the result is non-zero, a match is found.
Syntax of 0x19 SID Positive Response Message
Response Message definition – Sub-function = Report DTC By Severity Mask Record
Data byte | Parameter Name | Byte Value |
#1 | Read DTC Information +Ve Response SID | 0x59 |
# 2 | Report Type = [ Report DTC By Severity Mask Record ] | 0x08 |
#3 | DTC Status Availability Mask | 0x00 – 0xFF |
#4 #5 #6 #7 #8 #9 #10 #11 : #n-3 #n-2 #n-1 #n | DTC And Status Record[] = [ DTC High Byte#1 DTC Middle Byte#1 DTC Low Byte#1 status Of DTC#1 DTC High Byte#2 DTC Middle Byte#2 DTC Low Byte#2 status OfDTC#2 : DTC High Byte#m DTC Middle Byte#m DTC Low Byte#m status Of DTC#m | 0x00 – 0xFF 0x00 – 0xFF 0x00 – 0xFF 0x00 – 0xFF 0x00 – 0xFF 0x00 – 0xFF 0x00 – 0xFF 0x00 – 0xFF : 0x00 – 0xFF 0x00 – 0xFF 0x00 – 0xFF 0x00 – 0xFF |
C1: In case of reportDTCBySeverityMaskRecord this parameter has to be present if at least one DTC matches the client defined DTC severity mask. In case of reportSeverityInformationOfDTC this parameter has to be present if the server supports the DTC specified in the request message. C2: This parameter record is only present if reportType = reportDTCBySeverityMaskRecord. It has to be present if more than one DTC matches the client defined DTC severity mask. |
SBFID (0x08) Positive Response Message Data-Parameter of SID (0x19)
DTCAndSeverityRecord
This parameter record includes fields like DTCSeverity, DTCFunctionalUnit, DTCHighByte, DTCMiddleByte, DTCLowByte, and statusOfDTC, depending on the DTC format used (e.g., ISO 14229-1, SAE J2012-DA, or SAE J1939-73). DTCSeverity indicates how critical a fault is and helps in deciding what action or warning to show the driver. DTCFunctionalUnit identifies the system or component reporting the fault and is defined by the vehicle manufacturer.
The combination of DTCHighByte, DTCMiddleByte, and DTCLowByte uniquely identifies a DTC. The first two bytes show the affected system, and the last byte defines the fault type. In SAE J1939-73 format, this record may also include SPN, FMI, and OC, which provide detailed fault information as per SAE J1939 standards.
DTCRecord
This parameter record consists of one or more sets of DTCHighByte, DTCMiddleByte, and DTCLowByte. The interpretation of each DTC record depends on the DTCFormatIdentifier value.
Syntax of 0x19 SID Negative Response Message
Response Message definition – Sub-function = Report DTC By Severity Mask Record
Data byte | Parameter Name | Byte Value |
#1 | Read DTC Information –Ve Response SID [ byte#1 ] | 0x7F |
#2 | Requested SID [ byte#1 ] | 0x19 |
#3 | Negative Response Code [ byte#1 ] | NRC |
Example of Report DTC by Severity Mask Record (0x08) in UDS Protocol: Service 0x19
Below are the Examples of Report DTC by Severity Mask Record (0x08) in UDS Protocol: Service 0x19
Example of Request Message Frame Format of SBFID-0x08 for SID-0x19
Read DTC Information, Sub-function = Report DTC By Severity Mask Record, Request Message Flow Example
Message direction | Client → Server | |
Message Type | Request | |
Data Byte | Description (all values are in hexadecimal) | Byte Value |
#1 | Read DTC Information Request SID | 0x19 |
#2 | Sub-Function = Report DTC By Severity Mask Record, Suppress Pos Rsp Msg Indication Bit = FALSE | 0x08 |
#3 | DTC Severity Mask Record (DTCSeverityMask) | 0xC0 |
#4 | DTC Severity Mask Record (DTCStatusMask) | 0x01 |
Example of Positive Response Message Frame Format of SBFID-0x08 for SID-0x19
Read DTC Information, Sub-function = Report DTC By Severity Mask Record, Positive Response Example
Message direction | Server → Client | |
Message Type | Response | |
Data Byte | Description (all values are in hexadecimal) | Byte Value |
#1 | Read DTC Information +Ve Response SID | 0x59 |
#2 | Report Type = Report DTC By Severity Mask Record | 0x08 |
#3 | DTC Status Availability Mask | 0x7F |
#4 | DTCSeverityRecord#1 [ DTCSeverity ] | 0x40 |
#5 | DTCSeverityRecord#1 [ DTCFunctionalUnit ] | 0x10 |
#6 | DTCSeverityRecord#1 [ DTCHighByte ] | 0x08 |
#7 | DTCSeverityRecord#1 [ DTCMiddleByte ] | 0x05 |
#8 | DTCSeverityRecord#1 [ DTCLowByte ] | 0x11 |
#9 | DTCSeverityRecord#1 [ StatusofDTC ] | 0x2F |
Example of Negative Response Message Frame Format of SBFID-0x08 for SID-0x19
Message direction | Server → Client | |
Message Type | Response | |
Data Byte | Description (all values are in hexadecimal) | Byte Value |
#1 | Read DTC Information –Ve Response SID [ byte#1 ] | 0x7F |
#2 | Requested SID [ byte#1 ] | 0x19 |
#3 | Negative Response Code [ byte#1 ] | NRC |
// Below example shows how to use the UDS commands over the CAN data field as per the DoCAN
// Example for Positive Response for SID-0x19
Request: Client --> Server
02 19 08
Positive Response: Server --> Client
09 59 08 7F 40 10 08 05 11 2F
// Example for Negative Response for SID-0x19
Request: Client --> Server
03 19 08
Negative Response: Server --> Client
03 7F 19 13
Understanding UDS 0x19 08 Command Over CAN (DoCAN)
The UDS (Unified Diagnostic Services) protocol allows clients (like diagnostic tools or ECUs) to communicate with servers (such as vehicle ECUs) to read and manage Diagnostic Trouble Codes (DTCs). One powerful sub-function under Service 0x19 is Sub-function 0x08, which is used to report DTCs by severity mask.

✅ Example: Positive Response for SID 0x19, Sub-function 0x08
Request (Client → Server):
02 19 08
02
: Indicates 2 bytes of actual data.19
: Service ID for “Read DTC Information”.08
: Sub-function for “Report DTCs by Severity Mask”.
Positive Response (Server → Client):
09 59 08 7F 40 10 08 05 11 2F
- 09 – Total number of bytes in the CAN frame (after PCI).
- 59 – Positive Response SID (0x19 + 0x40 = 0x59).
- 08 – Echoed sub-function to indicate it’s a response to 0x08.
- 7F 40 10 – First supported DTC code.
- 08 05 11 – Second supported DTC code.
- 2F – Possibly the start of a third DTC or continuation of a record (depends on OEM format).
Each supported DTC is represented using 3 bytes. These hex values are interpreted using the DTC format defined by the manufacturer or standard (usually ISO 14229).
This list helps engineers or diagnostic tools understand which DTCs the ECU is programmed to detect and report.
❌ Example: Negative Response for SID 0x19, Sub-function 0x08
Request (Client → Server):
03 19 08
03
: Indicates 3 bytes of data, possibly including severity mask (not shown fully here).19
: Service ID.08
: Sub-function.
Negative Response (Server → Client):
03 7F 19 13
03
: Total data bytes.7F
: Indicates a negative response.19
: Refers to the original service (0x19).13
: NRC (Negative Response Code) indicating the reason for failure (e.g.,0x13
means “InvalidFormat” or “IncorrectMessageLengthOrInvalidFormat”).
This tells the client that the request was not accepted, possibly due to an incorrect format or missing severity mask.
Key Takeaways:
- UDS 0x19 08 allows filtering and reporting of DTCs based on severity levels.
- Useful for prioritizing critical faults in diagnostic tools and ECUs.
- The request message must be properly formatted with a valid severity mask.
- Improper message format results in a Negative Response (e.g., NRC 0x13).
- Essential for automotive developers working on diagnostics and fault management systems.
Discover more from PiEmbSysTech
Subscribe to get the latest posts sent to your email.