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 whencodeitself 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. Negativerac_result_tinteger 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. Ifcodeis set,c_abi_codeMUST equal-int32(code)for codes ≤ 899; for the Web-only WASM codes (≥ 900)c_abi_codeis 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
trueif this message is marked read-only. Otherwisefalse.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.
componentis 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
updatesto 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
trueif a value ofextensionis 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 aCodedBufferReaderinput.inherited -
mergeFromJson(
String data, [ExtensionRegistry extensionRegistry = ExtensionRegistry.EMPTY]) → void -
Merges field values from
data, a JSON object, encoded as described byGeneratedMessage.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
otherinto 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
Applyupdatesto 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 givenCodedBufferWriter.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