SDKError class


SDKError — the unified error payload every SDK throws / returns.

Sources pre-IDL: C ABI rac_structured_error.h:102 rac_error_t (code, category, message, source location, stack trace, underlying_code, underlying_message, model_id, framework, session_id, timestamp_ms, 3 custom k/v slots). Swift (no concrete SDKError type was located; Swift code uses ErrorCode + ErrorCategory + a SDKErrorProtocol shape that matches this message; the migrated Swift SDK in sdk/swift/ will be regenerated from this proto). Kotlin SDKError.kt:27 data class (code, category, message, cause). Dart sdk_error.dart:13 class SDKError (message, type, underlyingError, context). RN SDKError.ts:147 class SDKError (code, legacyCode?, category, underlyingError, context, details?). Web ErrorTypes.ts:68 class SDKError (code, details?).

Wire contract:

  • code — required. Always non-zero (zero indicates success and there should be no SDKError to begin with). Codegen MUST refuse to emit ERROR_CODE_UNSPECIFIED at runtime.
  • category — required. Coarse routing bucket. May be UNSPECIFIED only when code itself doesn't fit any bucket cleanly (rare).
  • message — required, human-readable, non-localized. Localization is a consumer concern.
  • context — optional. Source location + telemetry metadata.
  • c_abi_code — optional. Negative rac_result_t integer from the C ABI (e.g. -110 for MODEL_NOT_FOUND). Allows lossless round-trip with the C ABI even when intermediate platforms (Kotlin, Dart, RN) use a positive-numbered local enum. If code is set, c_abi_code MUST equal -int32(code) for codes ≤ 899; for the Web-only WASM codes (≥ 900) c_abi_code is unset because no canonical C ABI value exists.
  • nested_message — optional. Underlying-error message as captured at wrap time. Mirrors Swift's RunAnywhereError.underlyingError.localizedDesc and Kotlin's Throwable.cause.message.
  • retryable — canonical retry hint. This is business-policy metadata owned by the portable layer; the platform adapter still decides how to schedule the retry through native/background APIs when appropriate.
  • correlation_id — stable cross-event/request correlation key. SDKEvent also carries this field so callers can join success/progress/failure events without parsing free-form properties.

Available extensions

Constructors

SDKError({ErrorCode? code, ErrorCategory? category, String? message, ErrorContext? context, int? cAbiCode, String? nestedMessage, Int64? timestampMs, ErrorSeverity? severity, String? component, bool? retryable, String? remediationHint, String? correlationId})
factory
SDKError.fromBuffer(List<int> data, [ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY])
factory
SDKError.fromJson(String json, [ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY])
factory

Properties

cAbiCode int
Negative rac_result_t value from the C ABI. May be negative; preserved via int32 (proto3 int32 is signed). Unset when the failure originated outside the C ABI (e.g. a pure-Web WASM failure).
getter/setter pair
category ErrorCategory
getter/setter pair
code ErrorCode
getter/setter pair
component String
getter/setter pair
context ErrorContext
getter/setter pair
correlationId String
getter/setter pair
hashCode int
Calculates a hash code based on the contents of the protobuf.
no setterinherited
info_ → BuilderInfo
no setter
isFrozen bool
Returns true if this message is marked read-only. Otherwise false.
no setterinherited
message String
getter/setter pair
nestedMessage String
Underlying error's message (the "caused by" chain), if any.
getter/setter pair
remediationHint String
getter/setter pair
retryable bool
getter/setter pair
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
severity ErrorSeverity
getter/setter pair
timestampMs ↔ Int64
Envelope metadata for canonical error emission. component is a stable lowercase component key ("llm", "stt", "tts", "vad", "vlm", "rag", "download", "storage", ...); SDKEvent carries the enum-typed component.
getter/setter pair
unknownFields → UnknownFieldSet
no setterinherited

Methods

addExtension(Extension extension, Object? value) → void
Adds an extension field value to a repeated field.
inherited
check() → void
Throws a StateError if the message has required fields without a value.
inherited
clear() → void
Clears all data that was set in this message.
inherited
clearCAbiCode() → void
clearCategory() → void
clearCode() → void
clearComponent() → void
clearContext() → void
clearCorrelationId() → void
clearExtension(Extension extension) → void
Clears an extension field and also removes the extension.
inherited
clearField(int tagNumber) → void
Clears the contents of a given field.
inherited
clearMessage() → void
clearNestedMessage() → void
clearRemediationHint() → void
clearRetryable() → void
clearSeverity() → void
clearTimestampMs() → void
clone() SDKError
Creates a deep copy of the fields in this message.
copyWith(void updates(SDKError)) SDKError
Apply updates to a copy of this message.
createEmptyInstance() SDKError
Creates an empty instance of the same message type as this.
deepCopy() → T

Available on T, provided by the GeneratedMessageGenericExtensions extension

Returns a writable deep copy of this message.
ensureContext() ErrorContext
extensionsAreInitialized() bool
inherited
freeze() → GeneratedMessage
Make this message read-only.
inherited
getDefaultForField(int tagNumber) → dynamic
Returns the default value for the given field.
inherited
getExtension(Extension extension) → dynamic
Returns the value of extension.
inherited
getField(int tagNumber) → dynamic
Returns the value of the field associated with tagNumber, or the default value if it is not set.
inherited
getFieldOrNull(int tagNumber) → dynamic
Returns the value of a field, ignoring any defaults.
inherited
getTagNumber(String fieldName) int?
inherited
hasCAbiCode() bool
hasCategory() bool
hasCode() bool
hasComponent() bool
hasContext() bool
hasCorrelationId() bool
hasExtension(Extension extension) bool
Returns true if a value of extension is present.
inherited
hasField(int tagNumber) bool
Whether this message has a field associated with tagNumber.
inherited
hasMessage() bool
hasNestedMessage() bool
hasRemediationHint() bool
hasRequiredFields() bool
Whether the message has required fields.
inherited
hasRetryable() bool
hasSeverity() bool
hasTimestampMs() bool
isInitialized() bool
Whether all required fields in the message and embedded messages are set.
inherited
mergeFromBuffer(List<int> input, [ExtensionRegistry extensionRegistry = ExtensionRegistry.EMPTY]) → void
Merges serialized protocol buffer data into this message.
inherited
mergeFromCodedBufferReader(CodedBufferReader input, [ExtensionRegistry extensionRegistry = ExtensionRegistry.EMPTY]) → void
Same as mergeFromBuffer, but takes a CodedBufferReader input.
inherited
mergeFromJson(String data, [ExtensionRegistry extensionRegistry = ExtensionRegistry.EMPTY]) → void
Merges field values from data, a JSON object, encoded as described by GeneratedMessage.writeToJson.
inherited
mergeFromJsonMap(Map<String, dynamic> json, [ExtensionRegistry extensionRegistry = ExtensionRegistry.EMPTY]) → void
Merges field values from a JSON object represented as a Dart map.
inherited
mergeFromMessage(GeneratedMessage other) → void
Merges the contents of the other into this message.
inherited
mergeFromProto3Json(Object? json, {TypeRegistry typeRegistry = const TypeRegistry.empty(), bool ignoreUnknownFields = false, bool supportNamesWithUnderscores = true, bool permissiveEnums = false}) → void
Merges field values from json, a JSON object using proto3 encoding.
inherited
mergeUnknownFields(UnknownFieldSet unknownFieldSet) → void
inherited
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
rebuild(void updates(T)) → T

Available on T, provided by the GeneratedMessageGenericExtensions extension

Apply updates to a copy of this message.
setExtension(Extension extension, Object value) → void
Sets the value of a non-repeated extension field to value.
inherited
setField(int tagNumber, Object value) → void
Sets the value of a field by its tagNumber.
inherited
toBuilder() → GeneratedMessage
Creates a writable, shallow copy of this message.
inherited
toDebugString() String
Returns a String representation of this message.
inherited
toProto3Json({TypeRegistry typeRegistry = const TypeRegistry.empty()}) Object?
Returns an Object representing Proto3 JSON serialization of this.
inherited
toString() String
Returns a String representation of this message.
inherited
writeToBuffer() Uint8List
Serialize the message as the protobuf binary format.
inherited
writeToCodedBufferWriter(CodedBufferWriter output) → void
Same as writeToBuffer, but serializes to the given CodedBufferWriter.
inherited
writeToJson() String
Returns a JSON string that encodes this message.
inherited
writeToJsonMap() Map<String, dynamic>
Returns the JSON encoding of this message as a Dart Map.
inherited

Operators

operator ==(Object other) bool
The equality operator.
inherited

Static Methods

create() SDKError
getDefault() SDKError