Categories:

Information Schema , Table functions

APPLICATION_CALLBACK_HISTORY

Returns information about the history of callback invocations for Snowflake Native Apps in your Snowflake account. Each row represents a callback invocation, including the callback type, execution mode, state, and any error information.

Syntax

APPLICATION_CALLBACK_HISTORY(
  [ APPLICATION_NAME => '<application_name>' ]
  [ , CALLBACK_TYPE => '<callback_manifest_name>' ]
  [ , LIMIT => <number> ]
)

Optional arguments

APPLICATION_NAME => 'application_name'

The name of the app for which to retrieve callback history. If not specified, returns history for all apps in the account.

CALLBACK_TYPE => 'callback_manifest_name'

The callback type as defined in the manifest file. If not specified, returns history for all callback types in the specified app.

LIMIT => number

The maximum number of rows to return. Default is 100. Maximum is 10000.

Usage notes

  • When calling an Information Schema table function, the session must have an INFORMATION_SCHEMA schema in use or the function name must be fully-qualified. For more details, see Snowflake Information Schema.
  • The QUERY_TEXT and ERROR_MESSAGE columns are redacted unless the caller is the app itself.
  • Using this function requires one of the following:
    • OWNERSHIP on the app.
    • MONITOR privilege on the app.
    • Running as the app itself.

Output

The function returns the following columns:

Column NameData TypeDescription
TYPEVARCHARThe callback type as defined in the manifest file.
EXECUTION_MODEVARCHARThe execution mode of the callback. Possible values are: SYNC, ASYNC.
APPLICATION_NAMEVARCHARThe name of the app that defines the callback.
STATEVARCHARThe state of the callback execution. See Callback states.
STARTED_ONTIMESTAMP_LTZThe timestamp when the callback was invoked.
COMPLETED_ONTIMESTAMP_LTZThe completion timestamp. NULL if the callback has not yet completed.
TRIGGERING_QUERY_IDVARCHARThe query ID of the SQL statement that triggered the callback. NULL if the callback was not triggered by a SQL query (for example, when triggered after an upgrade completes).
QUERY_IDVARCHARThe query ID of the callback procedure execution. NULL if the callback has not yet completed.
QUERY_TEXTVARCHARThe procedure call SQL text. NULL if the callback has not yet completed. This column is redacted unless the caller is the app itself.
ERROR_CODEVARCHARThe error code. NULL unless STATE is FAILED or ABORTED.
ERROR_MESSAGEVARCHARThe error message. NULL unless STATE is FAILED or ABORTED. This column is redacted unless the caller is the app itself.

Callback states

The following table describes the possible values for the STATE column:

StateApplies toDescription
QUEUEDAsync onlyThe callback is waiting to be scheduled.
SCHEDULEDAsync onlyThe callback has been scheduled and is waiting to be executed.
EXECUTINGAsync / SyncThe callback procedure is currently running.
COMPLETEDAsync / SyncThe callback procedure finished successfully.
FAILEDAsync / SyncThe callback procedure failed validation (for example, wrong signature) or execution.
ABORTEDAsync onlyAn internal scheduling error occurred. This state requires support intervention.

Examples

Retrieve the callback history for a specific application:

SELECT *
FROM TABLE(
    INFORMATION_SCHEMA.APPLICATION_CALLBACK_HISTORY(
        APPLICATION_NAME => 'my_app'));

Retrieve the callback history for a specific callback type with a custom limit:

SELECT *
FROM TABLE(
    INFORMATION_SCHEMA.APPLICATION_CALLBACK_HISTORY(
        APPLICATION_NAME => 'my_app',
        CALLBACK_TYPE => 'after_configuration_change',
        LIMIT => 100));