← Back to packages

Package intrinsic_proto.error

Message Data

Message Description

Message ErrorReport

Message ErrorReports

Message Item

Message Item

Message RecoveryInstructions

Enum Category

Messages

message Data (Nested in intrinsic_proto.error.ErrorReport ) intrinsic/logging/errors/proto/error_report.proto

Relevant data items for the error (e.g. images, internal states).

Field Type Description
1 items repeated intrinsic_proto.error.ErrorReport.Data.Item

message Description (Nested in intrinsic_proto.error.ErrorReport ) intrinsic/logging/errors/proto/error_report.proto

Error description. (e.g. error type & message, properties of error)

Field Type Description
2 human_readable_summary string

Required. Short summary of the error to be communicated to a human. Typically <10 words.

3 category intrinsic_proto.error.ErrorReport.Description.Category

Optional.

4 status google.rpc.Status

Required. Be as specific as possible in the error message describing the error.

message ErrorReport intrinsic/logging/errors/proto/error_report.proto

Structured data about an error that occurred within the stack, which has the purpose to be used for error resolution. This data is typically logged to the DataLogger as a payload of a LogItem, and collected by the ErrorService for processing. It contains a description, resolution instructions and relevant associated data (e.g. images, internal states etc.).

DIFFERENCE BETWEEN absl.Status / rpc.Status AND ErrorReport: - absl.Status & rpc.Status are used throughout our stack to propagate information that is useful for the respective higher level component to interpret the status, and automatically act on it. - ErrorReport: Structured data about an error event that contains a detailed context (e.g. camera images, simulation state, other internal states) which is useful to present an explanation for the error to a human and to (automatically) search for or generate resolution suggestions. The proto should contain enough data to clearly share issues with other humans and preferably enough data to replay / tune the problematic part in isolation. An ErrorReport contains the respective StatusProto (generated from absl.Status) in its description. ErrorReports should only be logged close to the root cause of the error, and at key framework locations (skill interface and executive interface).

Note that the LogItem.Metadata used in conjunction with an ErrorReport informs about timings and details about the event source (component, app name, cluster etc.). The LogItem.Context informs about how an ErrorReport is related to other ErrorReports given their context.

Field Type Description
1 description intrinsic_proto.error.ErrorReport.Description

Required.

2 instructions intrinsic_proto.error.ErrorReport.RecoveryInstructions

Required.

3 data intrinsic_proto.error.ErrorReport.Data

Optional.

message ErrorReports intrinsic/logging/errors/proto/error_report.proto

Field Type Description
1 error_reports repeated intrinsic_proto.error.ErrorReport

message Item (Nested in intrinsic_proto.error.ErrorReport.RecoveryInstructions ) intrinsic/logging/errors/proto/error_report.proto

Field Type Description
1 human_readable string

Required. Human-readable instruction on how to potentially resolve the issue.

message Item (Nested in intrinsic_proto.error.ErrorReport.Data ) intrinsic/logging/errors/proto/error_report.proto

Field Type Description
oneof status_or_data
1 data google.protobuf.Any
4 status google.rpc.Status

status may be set if acquiring data failed

message RecoveryInstructions (Nested in intrinsic_proto.error.ErrorReport ) intrinsic/logging/errors/proto/error_report.proto

Instructions for resolution. Human-readable and additional structured data for recoveries which the user can select via a frontend. Instructions can reference data items from 'data'.

Field Type Description
1 items repeated intrinsic_proto.error.ErrorReport.RecoveryInstructions.Item

List of alternatives.

Enums

enum Category intrinsic/logging/errors/proto/error_report.proto

Name Number Description
UNKNOWN 0
CATEGORY_CRITICAL 1

Error likely leads to an app failure. Restart of app or component required.

CATEGORY_HUMAN_INTERVENTION_REQUIRED 2

Error is most likely only recoverable by human intervention.

CATEGORY_AUTOMATICALLY_RECOVERABLE 3

Error is likely recoverable automatically.