ReadonlyappendThe opaque, caller-supplied append tokens of the appends that were acknowledged together. Never empty; a token reused across appends appears once per acknowledged append (not deduplicated). Frozen at construction — the array itself cannot be modified, though the tokens inside it are the caller's own objects.
ReadonlyrequestThe Snowflake request id of the server response that acknowledged these appends, for support escalation.
ReadonlyretryHow many retries that request took: 0 when the first attempt was acknowledged, N when the SDK retried N times before Snowflake accepted it.
Use this to decide whether these rows may be duplicated in the table. A retry
re-sends the same rowset, and the SDK retries whenever it cannot tell that the
previous attempt failed — a timeout or a 5xx may mean the rows were never processed,
or that they were processed and only the response was lost. 0 means the SDK sent
this rowset once and introduced no duplicate; > 0 means it sent it more than once
and an earlier attempt may already have been applied, so the rows may appear more
than once. Reconcile or de-duplicate downstream if you need exactly-once.
The signal is conservative: it counts every re-send, including an authentication
refresh, which is rejected before the rows are processed and so cannot have
duplicated anything. > 0 means "a duplicate is possible", not "a duplicate
happened".
Read it only when requestId is non-null: an acknowledgement with no originating
request reports 0 too. A steadily non-zero count also means the SDK is absorbing
retries on your behalf.
The payload handed to an elastic-channel success handler (registered via
StreamingIngestElasticChannel.setSuccessHandler) when appends are acknowledged by Snowflake.Delivered once per successful acknowledgement, carrying the caller-supplied append tokens of every append acked together in that server-ack batch. There is no error field — unlike
ErrorDetail, there is nothing to explain.Instances are created by the SDK and frozen; handlers only read this type, so new fields can be added over time without breaking them.