/*
 * Copyright (C) 2023 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

syntax = "proto2";
package android.adservices.common;

option java_multiple_files = true;

/**
 * Enum representing an error/exception.  These errors can be common to all
 * PPAPIs or specific to a particular API. We will group enums in blocks of
 * 1000 like this below:
 * - Common errors: 1-1000
 * - Topics errors: 1001-2000
 * - Measurement errors: 2001-3000
 * - Fledge errors: 3001-4000
 * - UX errors: 4001-5000
 * - FederatedCompute errors: 5001-6000
 * - Back Compat errors: 6001-7000
 * - IAPC errors: 7001 - 8000
 * - ODP errors: 8001-9000
 *
 * NOTE: AdId / AdSetId don't have a range yet (because they're just using common codes)
 */
enum ErrorCode {
  // Common Errors: 1-1000
  ERROR_CODE_UNSPECIFIED = 0;
  DATABASE_READ_EXCEPTION = 1;
  DATABASE_WRITE_EXCEPTION = 2;
  API_REMOTE_EXCEPTION = 3;

  // Error occurred when unable to send result to the callback.
  API_CALLBACK_ERROR = 4;

  // Error occurred when failed to call the callback on Rate Limit Reached.
  RATE_LIMIT_CALLBACK_FAILURE = 5;

  // Error occurred when calling package name is not found.
  PACKAGE_NAME_NOT_FOUND_EXCEPTION = 6;

  // Shared pref update failure.
  SHARED_PREF_UPDATE_FAILURE = 7;

  // Shared pref reset failure.
  SHARED_PREF_RESET_FAILURE = 8;

  // Remote exception when calling the Cobalt upload API.
  COBALT_UPLOAD_API_REMOTE_EXCEPTION = 9;

  // Exception occurred when parsing the Adservices Config XML provided by an app.
  APP_MANIFEST_CONFIG_PARSING_ERROR = 10;

  // Generic exception when dealing with shared prefs.
  SHARED_PREF_EXCEPTION = 11;

  // Error logging an API check using Adservices Config XML provided by an app.
  APP_MANIFEST_CONFIG_LOGGING_ERROR = 12;

  // Incorrect version of the json file.
  ENCRYPTION_KEYS_INCORRECT_JSON_VERSION = 13;

  // JSON parsing error for the key.
  ENCRYPTION_KEYS_JSON_PARSING_ERROR = 14;

  // Failed to delete an expired encryption key.
  ENCRYPTION_KEYS_FAILED_DELETE_EXPIRED_KEY = 15;

  // Failed to load Encryption Keys MDD filegroup
  ENCRYPTION_KEYS_FAILED_MDD_FILEGROUP = 16;

  // Encryption Keys no MDD files available.
  ENCRYPTION_KEYS_MDD_NO_FILE_AVAILABLE = 17;

  // JobScheduler is not available.
  JOB_SCHEDULER_IS_UNAVAILABLE = 18;

  // Failed to encrypt data in Cobalt.
  COBALT_ENCRYPTION_FAILED_EXCEPTION = 19;

  // Failed to fabricate Cobalt observations.
  COBALT_PRIVACY_GENERATION_EXCEPTION = 20;

  // Cobalt logger initialization failed in AppNameApiErrorLogger.
  COBALT_API_ERROR_LOGGER_INITIALIZATION_EXCEPTION = 21;

  // Write to atomic file datastore failed.
  ATOMIC_FILE_DATASTORE_WRITE_FAILURE = 22;

  // Read from atomic file datastore failed.
  ATOMIC_FILE_DATASTORE_READ_FAILURE = 23;

  // Error while parsing bytes to proto failure.
  PROTO_PARSER_INVALID_PROTO_ERROR = 24;

  // Error while decoding Base64 encoded string to bytes.
  PROTO_PARSER_DECODE_BASE64_ENCODED_STRING_TO_BYTES_ERROR = 25;

  // Error code is present multiple times in the custom sampling proto
  ERROR_CODE_PRESENT_MULTIPLE_TIMES_IN_PROTO = 26;

  // Package Deny process failure unknown.
  PACKAGE_DENY_PROCESS_ERROR_FAILURE_UNKNOWN = 27;

  // Package Deny process failure due to no file found.
  PACKAGE_DENY_PROCESS_ERROR_NO_FILE_FOUND = 28;

  // Package Deny process failure due to reading file.
  PACKAGE_DENY_PROCESS_ERROR_FAILED_READING_FILE = 29;

  // Package Deny process failure in filtering installed packages.
  PACKAGE_DENY_PROCESS_ERROR_FAILED_FILTERING_INSTALLED_PACKAGES = 30;

  // Package Deny process failure due to updating cache.
  PACKAGE_DENY_PROCESS_ERROR_FAILED_UPDATING_CACHE = 31;

  // Package Deny process failure due failure reading cache.
  PACKAGE_DENY_PROCESS_ERROR_FAILED_READING_CACHE = 32;

  // Package Deny process failure service disabled.
  PACKAGE_DENY_PROCESS_ERROR_DISABLED = 33;

  // Public or private key is invalid.
  HPKE_INVALID_KEY = 34;

  // The algorithm chosen is not found by the cryptographic provider.
  HPKE_ALGORITHM_NOT_FOUND = 35;

  // Underlying HPKE class cannot be located.
  HPKE_CLASS_NOT_FOUND = 36;

  // Error while encrypting message.
  HPKE_ENCRYPTION_EXCEPTION = 37;

  // Error while decrypting ciphertext.
  HPKE_DECRYPTION_EXCEPTION = 38;

  // SPE Errors: 901 - 930
  // Get an unavailable job execution start timestamp when calculating the execution latency.
  SPE_UNAVAILABLE_JOB_EXECUTION_START_TIMESTAMP = 901;

  // Get an invalid execution period during the calculation.
  SPE_INVALID_EXECUTION_PERIOD = 902;

  // Failed to persist execution start time in the storage.
  SPE_FAIL_TO_COMMIT_JOB_EXECUTION_START_TIME = 903;

  // Failed to persist execution stop time in the storage.
  SPE_FAIL_TO_COMMIT_JOB_EXECUTION_STOP_TIME = 904;

  // Execution failure.
  SPE_JOB_EXECUTION_FAILURE = 905;

  // JobScheduler is not available.
  SPE_JOB_SCHEDULER_IS_UNAVAILABLE = 906;

  // Invalid Job Policy configured in the server.
  SPE_INVALID_JOB_POLICY_SYNC = 907;

  // Job is not configured correctly.
  SPE_JOB_NOT_CONFIGURED_CORRECTLY = 908;

  // Scheduling Failure.
  SPE_JOB_SCHEDULING_FAILURE = 909;

  // Failure of the customized logic in onStopJob().
  SPE_JOB_ON_STOP_EXECUTION_FAILURE = 910;

  // Error during future cancellation process.
  SPE_FUTURE_CANCELLATION_ERROR = 911;

  // Error when JobScheduler tries to schedule a job but the app has scheduled more than 150 jobs.
  SPE_JOB_SCHEDULING_FAILURE_ON_TOO_MANY_SCHEDULED_JOBS = 912;

  // Process Stable Flags Error: 931 - 940
  // The flag initialization takes too long and exceeds the threshold.
  PROCESS_STABLE_FLAGS_FLAG_INIT_TIMEOUT = 931;
  // The flag initialization encounters error.
  PROCESS_STABLE_FLAGS_FLAG_INIT_ERROR = 932;
  // The flag initialization future encounters issue when calling get().
  PROCESS_STABLE_FLAGS_INIT_FUTURE_GET_ERROR = 933;

  // Topics errors: 1001-2000
  // Remote exception when calling get topics.
  GET_TOPICS_REMOTE_EXCEPTION = 1001;

  // Topics API is disabled.
  TOPICS_API_DISABLED = 1002;

  // SQLException occurred when failed to persist classified Topics.
  TOPICS_PERSIST_CLASSIFIED_TOPICS_FAILURE = 1003;

  // SQLException occurred when failed to persist Top Topics.
  TOPICS_PERSIST_TOP_TOPICS_FAILURE = 1004;

  // SQLException occurred when failed to record App-Sdk usage history.
  TOPICS_RECORD_APP_SDK_USAGE_FAILURE = 1005;

  // SQLException occurred when failed to record App Only usage history.
  TOPICS_RECORD_APP_USAGE_FAILURE = 1006;

  // SQLException occurred when failed to record can learn topic.
  TOPICS_RECORD_CAN_LEARN_TOPICS_FAILURE = 1007;

  // SQLException occurred when failed to record returned topic.
  TOPICS_RECORD_RETURNED_TOPICS_FAILURE = 1008;

  // SQLException occurred when failed to record returned topic.
  TOPICS_RECORD_BLOCKED_TOPICS_FAILURE = 1009;

  // SQLException occurred when failed to remove blocked topic.
  TOPICS_DELETE_BLOCKED_TOPICS_FAILURE = 1010;

  // SQLException occurred when failed to delete old epochs.
  TOPICS_DELETE_OLD_EPOCH_FAILURE = 1011;

  // SQLException occurred when failed to delete a column in table
  TOPICS_DELETE_COLUMN_FAILURE = 1012;

  // SQLException occurred when failed to persist topic contributors.
  TOPICS_PERSIST_TOPICS_CONTRIBUTORS_FAILURE = 1013;

  // SQLException occurred when failed to delete all entries from table.
  TOPICS_DELETE_ALL_ENTRIES_IN_TABLE_FAILURE = 1014;

  // Exception occurred when classify call failed.
  TOPICS_ON_DEVICE_CLASSIFY_FAILURE = 1015;

  // Exception occurred ML model did not return a topic id.
  TOPICS_ON_DEVICE_NUMBER_FORMAT_EXCEPTION = 1016;

  // Exception occurred when failed to load ML model.
  TOPICS_LOAD_ML_MODEL_FAILURE = 1017;

  // Exception occurred when unable to retrieve topics id to topics name.
  TOPICS_ID_TO_NAME_LIST_READ_FAILURE = 1018;

  // Exception occurred when unable to read classifier asset file.
  TOPICS_READ_CLASSIFIER_ASSET_FILE_FAILURE = 1019;

  // NoSuchAlgorithmException occurred when unable to find correct message.
  // digest algorithm.
  TOPICS_MESSAGE_DIGEST_ALGORITHM_NOT_FOUND = 1020;

  // Error occurred when failed to find downloaded classifier model file.
  DOWNLOADED_CLASSIFIER_MODEL_FILE_NOT_FOUND = 1021;

  // No downloaded or bundled classifier model available.
  NO_CLASSIFIER_MODEL_AVAILABLE = 1022;

  // Error occurred when failed to read labels file.
  READ_LABELS_FILE_FAILURE = 1023;

  // Error occurred when failed to read precomuted labels.
  READ_PRECOMUTRED_LABELS_FAILURE = 1024;

  // Error occurred when failed to read top apps file.
  READ_TOP_APPS_FILE_FAILURE = 1025;

  // Error occurred when saving a topic not in labels file.
  INVALID_TOPIC_ID = 1026;

  // Error occurred when failed to read precomuted app topics list.
  READ_PRECOMUTRED_APP_TOPICS_LIST_FAILURE = 1027;

  // Error occurred when failed to read bundled metadata file.
  READ_BUNDLED_METADATA_FILE_FAILURE = 1028;

  // Error occurred when reading redundant metadata property.
  CLASSIFIER_METADATA_REDUNDANT_PROPERTY = 1029;

  // Error occurred when reading redundant metadata asset.
  CLASSIFIER_METADATA_REDUNDANT_ASSET = 1030;

  // Error occurred when parsing metadata json missing property or asset_name.
  CLASSIFIER_METADATA_MISSING_PROPERTY_OR_ASSET_NAME = 1031;

  // Error occurred when failed to read classifier assets metadata file.
  READ_CLASSIFIER_ASSETS_METADATA_FAILURE = 1032;

  // Error occurred when failed to load downloaded file by file Id.
  DOWNLOADED_CLASSIFIER_MODEL_FILE_LOAD_FAILURE = 1033;

  // RuntimeException occurred when use invalid type of blocked topics
  // source of truth.
  TOPICS_INVALID_BLOCKED_TOPICS_SOURCE_OF_TRUTH = 1034;

  // RuntimeException occurred when unable to remove the blocked topic.
  TOPICS_REMOVE_BLOCKED_TOPIC_FAILURE = 1035;

  // RuntimeException occurred when unable to get all blocked topics.
  TOPICS_GET_BLOCKED_TOPIC_FAILURE = 1036;

  // RuntimeException occurred when unable to clear all blocked topics
  // in system server.
  TOPICS_CLEAR_ALL_BLOCKED_TOPICS_IN_SYSTEM_SERVER_FAILURE = 1037;

  // Error occurred when unable to handle JobService.
  TOPICS_HANDLE_JOB_SERVICE_FAILURE = 1038;

  // Error occurred when unable to fetch job scheduler.
  TOPICS_FETCH_JOB_SCHEDULER_FAILURE = 1039;

  // Error occurred while deleting a table for Topics.
  TOPICS_DELETE_TABLE_FAILURE = 1040;

  // Cobalt initialisation failure for Topics.
  TOPICS_COBALT_LOGGER_INITIALIZATION_FAILURE = 1041;

  // Failure to convert plaintext topic object to encrypted topic.
  TOPICS_ENCRYPTION_FAILURE = 1042;

  // Topics encryption key with invalid length.
  TOPICS_ENCRYPTION_INVALID_KEY_LENGTH = 1043;

  // Topics encryption with invalid response length.
  TOPICS_ENCRYPTION_INVALID_RESPONSE_LENGTH = 1044;

  // Topics encryption key failed to decode with Base64 decoder.
  TOPICS_ENCRYPTION_KEY_DECODE_FAILURE = 1045;

  // Topics encryption received null params in request for the encrypter.
  TOPICS_ENCRYPTION_NULL_REQUEST = 1046;

  // Topics encryption received null response from the encrypter.
  TOPICS_ENCRYPTION_NULL_RESPONSE = 1047;

  // Topics encryption received error while serialization to JSON.
  TOPICS_ENCRYPTION_SERIALIZATION_ERROR = 1048;

  // Topics encryption public key is missing.
  TOPICS_ENCRYPTION_KEY_MISSING = 1049;

  // Topics API request has empty sdk name.
  TOPICS_REQUEST_EMPTY_SDK_NAME = 1050;

  // Measurement errors: 2001-3000
  // Error occurred when inserting enrollment data to DB.
  ENROLLMENT_DATA_INSERT_ERROR = 2001;

  // Error occurred when deleting enrollment data to DB.
  ENROLLMENT_DATA_DELETE_ERROR = 2002;

  // Measurement foreground unknown failure.
  MEASUREMENT_FOREGROUND_UNKNOWN_FAILURE = 2003;

  // Measurement datastore failure.
  MEASUREMENT_DATASTORE_FAILURE = 2004;

  // Measurement datastore unknown failure.
  MEASUREMENT_DATASTORE_UNKNOWN_FAILURE = 2005;

  // Measurement invalid parameter fetching public keys.
  MEASUREMENT_PUBLIC_KEY_FETCHER_INVALID_PARAMETER = 2006;

  // Measurement IO exception while fetching public keys.
  MEASUREMENT_PUBLIC_KEY_FETCHER_IO_ERROR = 2007;

  // Measurement error while parsing public keys.
  MEASUREMENT_PUBLIC_KEY_FETCHER_PARSING_ERROR = 2008;

  // Failure to save seed in SharedPreferences
  ENROLLMENT_SHARED_PREFERENCES_SEED_SAVE_FAILURE = 2009;

  // When report deliver fails due to a network issue (IOException).
  MEASUREMENT_REPORTING_NETWORK_ERROR = 2010;

  // When report delivery fails due to report building as JSON.
  MEASUREMENT_REPORTING_PARSING_ERROR = 2011;

  // When encryption of aggregate report fails.
  MEASUREMENT_REPORTING_ENCRYPTION_ERROR = 2012;

  // Reporting errors should have specific error codes.
  MEASUREMENT_REPORTING_UNKNOWN_ERROR = 2013;

  // When parsing of enrollment file fails.
  ENROLLMENT_FAILED_PARSING = 2014;

  // Error occurred when encountering invalid enrollment.
  ENROLLMENT_INVALID = 2015;

  // Error occurred when trying to get instance of an ODP system event manager
  MEASUREMENT_REGISTRATION_ODP_GET_MANAGER_ERROR = 2016;

  // Error due to the ODP header being in an invalid format
  MEASUREMENT_REGISTRATION_ODP_INVALID_HEADER_FORMAT_ERROR = 2017;

  // Error due to the ODP header missing a required field
  MEASUREMENT_REGISTRATION_ODP_MISSING_REQUIRED_HEADER_FIELD_ERROR = 2018;

  // Error due to the ODP header containing a field with an invalid value
  MEASUREMENT_REGISTRATION_ODP_INVALID_HEADER_FIELD_VALUE_ERROR = 2019;

  // Error occurred when trying to parse the ODP header (JSON Exception)
  MEASUREMENT_REGISTRATION_ODP_JSON_PARSING_ERROR = 2020;

  // Error occurred when trying to parse the ODP header (Unknown Exception)
  MEASUREMENT_REGISTRATION_ODP_PARSING_UNKNOWN_ERROR = 2021;

  // Error occurred when trying to initialize cobalt logger for measurement metrics.
  MEASUREMENT_COBALT_LOGGER_INITIALIZATION_FAILURE = 2022;

  // Error occurred when trying to validate the UID of the calling app.
  MEASUREMENT_UID_CHECK_FAILURE = 2023;

  // Error occurred when trying to execute a background job.
  MEASUREMENT_BACKGROUND_JOB_FAILURE = 2024;

  // Timeout occurred when trying to get instance of an ODP system event manager
  MEASUREMENT_REGISTRATION_ODP_GET_MANAGER_TIMEOUT = 2025;

  // Fledge (PA), PAS errors: 3001 - 4000
  // Exception while PAS unable to find the service.
  PAS_UNABLE_FIND_SERVICES = 3001;

  // Error occurred when ProtectedSignalsManager get a remote exception.
  PAS_MANAGER_REMOTE_EXCEPTION = 3002;

  // Exception while ProtectedSignalsServiceImpl has a null argument.
  PAS_SERVICE_IMPL_NULL_ARGUMENT = 3003;

  // FilterException because user consent revoked.
  PAS_FILTER_EXCEPTION_USER_CONSENT_REVOKED = 3004;

  // FilterException because background caller happened.
  PAS_FILTER_EXCEPTION_BACKGROUND_CALLER = 3005;

  // FilterException because caller not allowed.
  PAS_FILTER_EXCEPTION_CALLER_NOT_ALLOWED = 3006;

  // FilterException because unauthorized.
  PAS_FILTER_EXCEPTION_UNAUTHORIZED = 3007;

  // FilterException because rate limit reached.
  PAS_FILTER_EXCEPTION_RATE_LIMIT_REACHED = 3008;

  // FilterException because internal error happened.
  PAS_FILTER_EXCEPTION_INTERNAL_ERROR = 3009;

  // Exception while failed to get enrollment data for buyer.
  PAS_GET_ENROLLMENT_AD_TECH_ID_FAILURE = 3010;

  // Error occurred when Fledge consent revoked.
  PAS_FLEDGE_CONSENT_NOT_GIVEN = 3011;

  // Error occurred when Fledge consent revoked for app after setting Fledge use.
  PAS_FLEDGE_CONSENT_REVOKED_FOR_APP_AFTER_SETTING_FLEDGE_USE = 3012;

  // Error encountered in updateSignals, unpacking from ExecutionException and notifying caller.
  PAS_EXECUTION_EXCEPTION = 3013;

  // Exception while unable to send result to the callback.
  PAS_UNABLE_SEND_RESULT_TO_CALLBACK = 3014;

  // Exception while PAS get illegal calling UID.
  PAS_GET_CALLING_UID_ILLEGAL_STATE = 3015;

  // FilterException occurred in PAS notifyFailure because user consent revoked.
  PAS_NOTIFY_FAILURE_FILTER_EXCEPTION_USER_CONSENT_REVOKED = 3016;

  // FilterException occurred in PAS notifyFailure because background caller happened.
  PAS_NOTIFY_FAILURE_FILTER_EXCEPTION_BACKGROUND_CALLER = 3017;

  // FilterException occurred in PAS notifyFailure because caller not allowed.
  PAS_NOTIFY_FAILURE_FILTER_EXCEPTION_CALLER_NOT_ALLOWED = 3018;

  // FilterException occurred in PAS notifyFailure because unauthorized.
  PAS_NOTIFY_FAILURE_FILTER_EXCEPTION_UNAUTHORIZED = 3019;

  // FilterException occurred in PAS notifyFailure because rate limit reached
  PAS_NOTIFY_FAILURE_FILTER_EXCEPTION_RATE_LIMIT_REACHED = 3020;

  // FilterException occurred in PAS notifyFailure because internal error happened.
  PAS_NOTIFY_FAILURE_FILTER_EXCEPTION_INTERNAL_ERROR = 3021;

  // Exception occurred in PAS notifyFailure because invalid argument.
  PAS_NOTIFY_FAILURE_INVALID_ARGUMENT = 3022;

  // Unexpected error during PAS operation.
  PAS_UNEXPECTED_ERROR_DURING_OPERATION = 3023;

  // Exception while PPAPI only Fledge consent check failed in ConsentManager.
  FLEDGE_CONSENT_MANAGER_PPAPI_ONLY_FLEDGE_CONSENT_CHECK_FAILED = 3024;

  // Exception while PPAPI and system server Fledge consent check failed in ConsentManager.
  FLEDGE_CONSENT_MANAGER_PPAPI_AND_SYSTEM_SERVER_FLEDGE_CONSENT_CHECK_FAILED = 3025;

  // Exception while PPAPI and ExtService consent failed in ConsentManager.
  FLEDGE_CONSENT_MANAGER_PPAPI_AND_ADEXT_SERVICE_CONSENT_FAILED = 3026;

  // Exception while invalid consent source of truth in ConsentManager.
  FLEDGE_CONSENT_MANAGER_INVALID_CONSENT_SOURCE_OF_TRUTH = 3027;

  // Exception because PAS validate and persist encoded payload failure.
  PAS_VALIDATE_AND_PERSIST_ENCODED_PAYLOAD_FAILURE = 3028;

  // Exception because PAS encoded payload size exceeds limits.
  PAS_ENCODED_PAYLOAD_SIZE_EXCEEDS_LIMITS = 3029;

  // Exception because of failed per buyer encoding of PAS.
  PAS_FAILED_PER_BUYER_ENCODING = 3030;

  // Exception when processing JSON version of signals.
  PAS_PROCESSING_JSON_VERSION_OF_SIGNALS_FAILURE = 3031;

  // Exception because null PAS null encoding script result.
  PAS_NULL_ENCODING_SCRIPT_RESULT = 3032;

  // Exception because PAS empty script result.
  PAS_EMPTY_SCRIPT_RESULT = 3033;

  // Exception because PAS JS execution is unsuccessful.
  PAS_JS_EXECUTION_STATUS_UNSUCCESSFUL = 3034;

  // Exception because PAS malformed encoded payload.
  PAS_MALFORMED_ENCODED_PAYLOAD = 3035;

  // Exception because PAS could not extract the encoded payload result.
  PAS_PROCESS_ENCODED_PAYLOAD_RESULT_FAILURE = 3036;

  // Exception because semantic error during PAS JSON processing.
  PAS_JSON_PROCESSING_STATUS_SEMANTIC_ERROR = 3037;

  // Exception because PAS unpack signal updates JSON failure.
  PAS_UNPACK_SIGNAL_UPDATES_JSON_FAILURE = 3038;

  // Error occurred because PAS collision error.
  PAS_COLLISION_ERROR = 3039;

  // Error occurred when converting updateSignals response body to JSON.
  PAS_CONVERTING_UPDATE_SIGNALS_RESPONSE_TO_JSON_ERROR = 3040;

  // Error occurred because empty response from client for downloading PAS encoder.
  PAS_EMPTY_RESPONSE_FROM_CLIENT_DOWNLOADING_ENCODER = 3041;

  // Error occurred because invalid or missing encoder version.
  PAS_INVALID_OR_MISSING_ENCODER_VERSION = 3042;

  // Error occurred because updating for encoding logic on persistence layer failed.
  PAS_UPDATE_FOR_ENCODING_LOGIC_ON_PERSISTENCE_LAYER_FAILED = 3043;

  // Exception because GetAdSelectionData auction server API not available.
  GET_AD_SELECTION_DATA_AUCTION_SERVER_API_NOT_AVAILABLE = 3044;

  // Exception because null argument in GetAdSelectionData.
  GET_AD_SELECTION_DATA_NULL_ARGUMENT = 3045;

  // Exception because PersistAdSelectionResult auction server API not available.
  PERSIST_AD_SELECTION_RESULT_AUCTION_SERVER_API_NOT_AVAILABLE = 3046;

  // Exception because null argument in PersistAdSelectionResult.
  PERSIST_AD_SELECTION_RESULT_NULL_ARGUMENT = 3047;

  // Exception because GetAdSelectionData get illegal calling UID.
  GET_AD_SELECTION_DATA_GET_CALLING_UID_ILLEGAL_STATE = 3048;

  // Exception because PersistAdSelectionResult get illegal calling UID.
  PERSIST_AD_SELECTION_RESULT_GET_CALLING_UID_ILLEGAL_STATE = 3049;

  // Exception because no match found, failing calling package name match in GetAdSelectionData.
  GET_AD_SELECTION_DATA_NO_MATCH_PACKAGE_NAME = 3050;

  // Exception because no match found, failing calling package name match
  // in PersistAdSelectionResult.
  PERSIST_AD_SELECTION_RESULT_NO_MATCH_PACKAGE_NAME = 3051;

  // Exception because one permission not declared by caller in GetAdSelectionData.
  GET_AD_SELECTION_DATA_PERMISSION_FAILURE = 3052;

  // Exception because one permission not declared by caller in PersistAdSelectionResult.
  PERSIST_AD_SELECTION_RESULT_PERMISSION_FAILURE = 3053;

  // Exception because any permission not declared by caller in GetAdSelectionData.
  GET_AD_SELECTION_DATA_ANY_PERMISSION_FAILURE = 3054;

  // Exception because any permission not declared by caller in PersistAdSelectionResult.
  PERSIST_AD_SELECTION_RESULT_ANY_PERMISSION_FAILURE = 3055;

  // Exception because enrollment data match not found for ad tech while calling GetAdSelectionData.
  GET_AD_SELECTION_DATA_ENROLLMENT_DATA_MATCH_NOT_FOUND = 3056;

  // Exception because enrollment data match not found for ad tech while calling
  // PersistAdSelectionResult.
  PERSIST_AD_SELECTION_RESULT_ENROLLMENT_DATA_MATCH_NOT_FOUND = 3057;

  // Error occurred because app package name with ad tech identifier not authorized
  // to call GetAdSelectionData.
  GET_AD_SELECTION_DATA_AD_TECH_NOT_AUTHORIZED_BY_APP = 3058;

  // Error occurred because app package name with ad tech identifier not authorized
  // to call PersistAdSelectionResult.
  PERSIST_AD_SELECTION_RESULT_AD_TECH_NOT_AUTHORIZED_BY_APP = 3059;

  // Error occurred because enrollment is in block list to call GetAdSelectionData.
  GET_AD_SELECTION_DATA_NOT_ALLOWED_ENROLLMENT_BLOCKLISTED = 3060;

  // Error occurred because enrollment is in block list to call PersistAdSelectionResult.
  PERSIST_AD_SELECTION_RESULT_NOT_ALLOWED_ENROLLMENT_BLOCKLISTED = 3061;

  // Exception because user consent for GetAdSelectionData is not given.
  GET_AD_SELECTION_DATA_USER_CONSENT_FOR_API_IS_NOT_GIVEN = 3062;

  // Exception because user consent for PersistAdSelectionResult is not given.
  PERSIST_AD_SELECTION_RESULT_USER_CONSENT_FOR_API_IS_NOT_GIVEN = 3063;

  // Exception because user consent for PAS is not given.
  PAS_CONSENT_REVOKED_FOR_APP = 3064;

  // Exception because of PAS missing any notification displayed.
  PAS_MISSING_ANY_NOTIFICATION_DISPLAYED = 3065;

  // Exception because of GetAdSelectionData missing any notification displayed.
  GET_AD_SELECTION_DATA_MISSING_ANY_NOTIFICATION_DISPLAYED = 3066;

  // Exception because of PersistAdSelectionResult missing any notification displayed.
  PERSIST_AD_SELECTION_RESULT_MISSING_ANY_NOTIFICATION_DISPLAYED = 3067;

  // Exception because all APIs consent disabled for PAS.
  PAS_ALL_APIS_CONSENT_DISABLED = 3068;

  // Exception because all APIs consent disabled for GetAdSelectionData.
  GET_AD_SELECTION_DATA_ALL_APIS_CONSENT_DISABLED = 3069;

  // Exception because all APIs consent disabled for PersistAdSelectionResult.
  PERSIST_AD_SELECTION_RESULT_ALL_APIS_CONSENT_DISABLED = 3070;

  // Exception because filter and revoked consent exception in GetAdSelectionDataRunner.
  GET_AD_SELECTION_DATA_RUNNER_FILTER_AND_REVOKED_CONSENT_EXCEPTION = 3071;

  // Exception because AdServices exception in GetAdSelectionDataRunner.
  GET_AD_SELECTION_DATA_RUNNER_ADSERVICES_EXCEPTION = 3072;

  // Exception because unsupported payload size in GetAdSelectionDataRunner.
  GET_AD_SELECTION_DATA_RUNNER_UNSUPPORTED_PAYLOAD_SIZE_EXCEPTION = 3073;

  // Exception because runOutcomeSelection fails fast with exception in GetAdSelectionDataRunner.
  GET_AD_SELECTION_DATA_RUNNER_RUNNER_OUTCOME_SELECTION_FAILURE = 3074;

  // Exception because GetAdSelectionDataRunner exceeded allowed time limit.
  GET_AD_SELECTION_DATA_RUNNER_EXCEEDED_ALLOWED_TIME_LIMIT = 3075;

  // Error occurred when creating response with AssetFileDescriptor in GetAdSelectionDataRunner.
  GET_AD_SELECTION_DATA_RUNNER_CREATE_ASSET_FILE_DESCRIPTOR_ERROR = 3076;

  // Exception during notifying GetAdSelectionDataCallback success in GetAdSelectionDataRunner.
  GET_AD_SELECTION_DATA_RUNNER_NOTIFY_SUCCESS_CALLBACK_ERROR = 3077;

  // Exception during notifying GetAdSelectionDataCallback empty success
  // in GetAdSelectionDataRunner.
  GET_AD_SELECTION_DATA_RUNNER_NOTIFY_EMPTY_SUCCESS_CALLBACK_ERROR = 3078;

  // Exception during notifying GetAdSelectionDataCallback failure in GetAdSelectionDataRunner.
  GET_AD_SELECTION_DATA_RUNNER_NOTIFY_FAILURE_CALLBACK_ERROR = 3079;

  // Exception of timeout during notifying failure in GetAdSelectionDataRunner.
  GET_AD_SELECTION_DATA_RUNNER_NOTIFY_FAILURE_TIMEOUT = 3080;

  // Exception of JS sandbox unavailable during notifying failure in GetAdSelectionDataRunner.
  GET_AD_SELECTION_DATA_RUNNER_NOTIFY_FAILURE_JS_SANDBOX_UNAVAILABLE = 3081;

  // Exception of invalid argument during notifying failure in GetAdSelectionDataRunner.
  GET_AD_SELECTION_DATA_RUNNER_NOTIFY_FAILURE_INVALID_ARGUMENT = 3082;

  // Exception of internal error during notifying failure in GetAdSelectionDataRunner.
  GET_AD_SELECTION_DATA_RUNNER_NOTIFY_FAILURE_INTERNAL_ERROR = 3083;

  // Exception of user consent revoked during notifying failure in GetAdSelectionDataRunner.
  GET_AD_SELECTION_DATA_RUNNER_NOTIFY_FAILURE_FILTER_EXCEPTION_USER_CONSENT_REVOKED = 3084;

  // Exception of background caller during notifying failure in GetAdSelectionDataRunner.
  GET_AD_SELECTION_DATA_RUNNER_NOTIFY_FAILURE_FILTER_EXCEPTION_BACKGROUND_CALLER = 3085;

  // Exception of caller not allowed during notifying failure in GetAdSelectionDataRunner.
  GET_AD_SELECTION_DATA_RUNNER_NOTIFY_FAILURE_FILTER_EXCEPTION_CALLER_NOT_ALLOWED = 3086;

  // Exception of unauthorized during notifying failure in GetAdSelectionDataRunner.
  GET_AD_SELECTION_DATA_RUNNER_NOTIFY_FAILURE_FILTER_EXCEPTION_UNAUTHORIZED = 3087;

  // Exception of rate limit reached during notifying failure in GetAdSelectionDataRunner.
  GET_AD_SELECTION_DATA_RUNNER_NOTIFY_FAILURE_FILTER_EXCEPTION_RATE_LIMIT_REACHED = 3088;

  // Exception of internal error during notifying failure in GetAdSelectionDataRunner.
  GET_AD_SELECTION_DATA_RUNNER_NOTIFY_FAILURE_FILTER_EXCEPTION_INTERNAL_ERROR = 3089;

  // Exception because filter and revoked consent exception in PersistAdSelectionResultRunner.
  PERSIST_AD_SELECTION_RESULT_RUNNER_REVOKED_CONSENT_FILTER_EXCEPTION = 3090;

  // Exception because AdServices exception in PersistAdSelectionResultRunner.
  PERSIST_AD_SELECTION_RESULT_RUNNER_ADSERVICES_EXCEPTION = 3091;

  // Exception because PersistAdSelectionResult fails fast.
  PERSIST_AD_SELECTION_RESULT_RUNNER_FAST_FAILURE = 3092;

  // Error while processing new messages for KAnon in PersistAdSelectionResultRunner.
  PERSIST_AD_SELECTION_RESULT_RUNNER_PROCESSING_KANON_ERROR = 3093;

  // Error of AuctionResult in PersistAdSelectionResultRunner.
  PERSIST_AD_SELECTION_RESULT_RUNNER_AUCTION_RESULT_HAS_ERROR = 3094;

  // Error because result is chaff in PersistAdSelectionResultRunner.
  PERSIST_AD_SELECTION_RESULT_RUNNER_RESULT_IS_CHAFF = 3095;

  // Error because AuctionResult type is unknown in PersistAdSelectionResultRunner.
  PERSIST_AD_SELECTION_RESULT_RUNNER_AUCTION_RESULT_UNKNOWN = 3096;

  // Error because invalid object of AuctionResult in PersistAdSelectionResultRunner.
  PERSIST_AD_SELECTION_RESULT_RUNNER_AUCTION_RESULT_INVALID_OBJECT = 3097;

  // Error because undefined ad type in PersistAdSelectionResultRunner.
  PERSIST_AD_SELECTION_RESULT_RUNNER_UNDEFINED_AD_TYPE = 3098;

  // Error because CA is not found in PersistAdSelectionResultRunner.
  PERSIST_AD_SELECTION_RESULT_RUNNER_NOT_FOUND_CA = 3099;

  // Error because CA has a null or empty list of ads in PersistAdSelectionResultRunner.
  PERSIST_AD_SELECTION_RESULT_RUNNER_NULL_OR_EMPTY_ADS_FOR_CA = 3100;

  // Error because winning ad is not found in CA's list of ads in PersistAdSelectionResultRunner.
  PERSIST_AD_SELECTION_RESULT_RUNNER_NOT_FOUND_WINNING_AD = 3101;

  // Exception because PersistAdSelectionResult timeout.
  PERSIST_AD_SELECTION_RESULT_RUNNER_TIMEOUT = 3102;

  // Error during parsing AuctionResult proto in PersistAdSelectionResultRunner.
  PERSIST_AD_SELECTION_RESULT_RUNNER_PARSING_AUCTION_RESULT_INVALID_PROTO_ERROR = 3103;

  // Error encountered updating ad counter histogram with win event
  // in PersistAdSelectionResultRunner.
  PERSIST_AD_SELECTION_RESULT_RUNNER_UPDATING_AD_COUNTER_WIN_HISTOGRAM_ERROR = 3104;

  // Error of invalid ad tech URI in PersistAdSelectionResultRunner.
  PERSIST_AD_SELECTION_RESULT_RUNNER_INVALID_AD_TECH_URI = 3105;

  // Error of invalid interaction URI in PersistAdSelectionResultRunner.
  PERSIST_AD_SELECTION_RESULT_RUNNER_INVALID_INTERACTION_URI = 3106;

  // Error occurred because interaction key size exceeds the maximum allowed
  // in PersistAdSelectionResultRunner.
  PERSIST_AD_SELECTION_RESULT_RUNNER_INTERACTION_KEY_EXCEEDS_MAXIMUM_LIMIT = 3107;

  // Exception because initialization info cannot be found for the given ad selection id
  // in PersistAdSelectionResultRunner.
  PERSIST_AD_SELECTION_RESULT_RUNNER_NULL_INITIALIZATION_INFO = 3108;

  // Exception because initialization info in db doesn't match the request
  // in PersistAdSelectionResultRunner.
  PERSIST_AD_SELECTION_RESULT_RUNNER_MISMATCH_INITIALIZATION_INFO = 3109;

  // Exception during notifying PersistAdSelectionResultRunner success
  // in PersistAdSelectionResultRunner.
  PERSIST_AD_SELECTION_RESULT_RUNNER_NOTIFY_SUCCESS_CALLBACK_ERROR = 3110;

  // Exception during notifying PersistAdSelectionResultRunner empty success
  // in PersistAdSelectionResultRunner.
  PERSIST_AD_SELECTION_RESULT_RUNNER_NOTIFY_EMPTY_SUCCESS_CALLBACK_ERROR = 3111;

  // Exception during notifying PersistAdSelectionResultRunner failure
  // in PersistAdSelectionResultRunner.
  PERSIST_AD_SELECTION_RESULT_RUNNER_NOTIFY_FAILURE_CALLBACK_ERROR = 3112;

  // Exception of timeout during notifying failure in PersistAdSelectionResultRunner.
  PERSIST_AD_SELECTION_RESULT_RUNNER_NOTIFY_FAILURE_TIMEOUT = 3113;

  // Exception of JS sandbox unavailable during notifying failure in PersistAdSelectionResultRunner.
  PERSIST_AD_SELECTION_RESULT_RUNNER_NOTIFY_FAILURE_JS_SANDBOX_UNAVAILABLE = 3114;

  // Exception of invalid argument during notifying failure in PersistAdSelectionResultRunner.
  PERSIST_AD_SELECTION_RESULT_RUNNER_NOTIFY_FAILURE_INVALID_ARGUMENT = 3115;

  // Exception of internal error during notifying failure in PersistAdSelectionResultRunner.
  PERSIST_AD_SELECTION_RESULT_RUNNER_NOTIFY_FAILURE_INTERNAL_ERROR = 3116;

  // Exception of user consent revoked during notifying failure in PersistAdSelectionResultRunner.
  PERSIST_AD_SELECTION_RESULT_RUNNER_NOTIFY_FAILURE_FILTER_EXCEPTION_USER_CONSENT_REVOKED = 3117;

  // Exception of background caller during notifying failure in PersistAdSelectionResultRunner.
  PERSIST_AD_SELECTION_RESULT_RUNNER_NOTIFY_FAILURE_FILTER_EXCEPTION_BACKGROUND_CALLER = 3118;

  // Exception of caller not allowed during notifying failure in PersistAdSelectionResultRunner.
  PERSIST_AD_SELECTION_RESULT_RUNNER_NOTIFY_FAILURE_FILTER_EXCEPTION_CALLER_NOT_ALLOWED = 3119;

  // Exception of unauthorized during notifying failure in PersistAdSelectionResultRunner.
  PERSIST_AD_SELECTION_RESULT_RUNNER_NOTIFY_FAILURE_FILTER_EXCEPTION_UNAUTHORIZED = 3120;

  // Exception of rate limit reached during notifying failure in PersistAdSelectionResultRunner.
  PERSIST_AD_SELECTION_RESULT_RUNNER_NOTIFY_FAILURE_FILTER_EXCEPTION_RATE_LIMIT_REACHED = 3121;

  // Exception of internal error during notifying failure in PersistAdSelectionResultRunner.
  PERSIST_AD_SELECTION_RESULT_RUNNER_NOTIFY_FAILURE_FILTER_EXCEPTION_INTERNAL_ERROR = 3122;

  // Exception of decryption invalid key in ObliviousHttpEncryptorImpl.
  OBLIVIOUS_HTTP_ENCRYPTOR_DECRYPTION_INVALID_KEY_SPEC_EXCEPTION = 3123;

  // Exception of decryption unsupported HPKE algorithm in ObliviousHttpEncryptorImpl.
  OBLIVIOUS_HTTP_ENCRYPTOR_DECRYPTION_UNSUPPORTED_HPKE_ALGORITHM_EXCEPTION = 3124;

  // Exception of decryption IO error in ObliviousHttpEncryptorImpl.
  OBLIVIOUS_HTTP_ENCRYPTOR_DECRYPTION_IO_EXCEPTION = 3125;

  // Exception of encryption unsupported HPKE algorithm in ObliviousHttpEncryptorImpl.
  OBLIVIOUS_HTTP_ENCRYPTOR_ENCRYPTION_UNSUPPORTED_HPKE_ALGORITHM_EXCEPTION = 3126;

  // Exception of encryption IO error in ObliviousHttpEncryptorImpl.
  OBLIVIOUS_HTTP_ENCRYPTOR_ENCRYPTION_IO_EXCEPTION = 3127;

  // Exception because ad tech not allowed in AuctionResultValidator.
  AUCTION_RESULT_VALIDATOR_AD_TECH_NOT_ALLOWED = 3128;

  // Exception because URI to fetch active key of type is null in AdSelectionEncryptionKeyManager.
  AD_SELECTION_ENCRYPTION_KEY_MANAGER_NULL_FETCH_URI = 3129;

  // Exception because Fledge API not available in AdSelectionService.
  AD_SELECTION_SERVICE_AUCTION_SERVER_API_NOT_AVAILABLE = 3130;

  // Exception while AdSelectionService has a null argument.
  AD_SELECTION_SERVICE_NULL_ARGUMENT = 3131;

  // Exception because AdSelectionService get illegal calling UID.
  AD_SELECTION_SERVICE_GET_CALLING_UID_ILLEGAL_STATE = 3132;

  // Exception because no match found, failing calling package name match
  // in FledgeAuthorizationFilter.
  FLEDGE_AUTHORIZATION_FILTER_NO_MATCH_PACKAGE_NAME = 3133;

  // Exception because one permission not declared by caller in FledgeAuthorizationFilter.
  FLEDGE_AUTHORIZATION_FILTER_PERMISSION_FAILURE = 3134;

  // Exception because any permission not declared by caller in FledgeAuthorizationFilter.
  FLEDGE_AUTHORIZATION_FILTER_ANY_PERMISSION_FAILURE = 3135;

  // Exception because enrollment data match not found for ad tech while
  // calling FledgeAuthorizationFilter.
  FLEDGE_AUTHORIZATION_FILTER_ENROLLMENT_DATA_MATCH_NOT_FOUND = 3136;

  // Error occurred because app package name with ad tech identifier not authorized
  // to call Fledge API.
  FLEDGE_AUTHORIZATION_FILTER_AD_TECH_NOT_AUTHORIZED_BY_APP = 3137;

  // Error occurred because enrollment is in block list to call Fledge API.
  FLEDGE_AUTHORIZATION_FILTER_NOT_ALLOWED_ENROLLMENT_BLOCKLISTED = 3138;

  // Exception because user consent for Fledge API is not given.
  FLEDGE_CONSENT_FILTER_USER_CONSENT_FOR_API_IS_NOT_GIVEN = 3139;

  // Exception because user consent for Fledge API is revoked.
  FLEDGE_CONSENT_FILTER_CONSENT_REVOKED_FOR_APP = 3140;

  // Exception because of Fledge API missing any notification displayed.
  FLEDGE_CONSENT_FILTER_MISSING_ANY_NOTIFICATION_DISPLAYED = 3141;

  // Exception because all APIs consent disabled for Fledge API.
  FLEDGE_CONSENT_FILTER_ALL_APIS_CONSENT_DISABLED = 3142;

  // Error occurred because interaction URI length exceeds the maximum allowed
  // in PersistAdSelectionResultRunner.
  PERSIST_AD_SELECTION_RESULT_RUNNER_INTERACTION_URI_EXCEEDS_MAXIMUM_LIMIT = 3143;

  // Error occurred when a revoke consent error is silently handled with notifying an empty success.
  PERSIST_AD_SELECTION_RESULT_RUNNER_NOTIFY_EMPTY_SUCCESS_SILENT_CONSENT_FAILURE = 3144;

  // Error occurs when a Custom Audience API was called with null parameters.
  CUSTOM_AUDIENCE_SERVICE_NULL_ARGUMENT = 3145;

  // Error occurs when a Custom Audience API failed to get the UID of the caller app.
  CUSTOM_AUDIENCE_SERVICE_GET_CALLING_UID_ILLEGAL_STATE = 3146;

  // Error occurs when a Custom Audience API failed to notify success to the caller.
  CUSTOM_AUDIENCE_SERVICE_NOTIFY_SUCCESS_TO_CALLER_FAILED = 3147;

  // Error occurs when a Custom Audience API failed because of invalid arguments.
  CUSTOM_AUDIENCE_SERVICE_NOTIFY_FAILURE_INVALID_ARGUMENT = 3148;

  // Error occurs when a Custom Audience API is called by a background caller.
  CUSTOM_AUDIENCE_SERVICE_NOTIFY_FAILURE_BACKGROUND_CALLER = 3149;

  // Error occurs when a Custom Audience API is called by an unauthorized caller.
  CUSTOM_AUDIENCE_SERVICE_NOTIFY_FAILURE_UNAUTHORIZED = 3150;

  // Error occurs when a caller of a Custom Audience API is not allowed.
  CUSTOM_AUDIENCE_SERVICE_NOTIFY_FAILURE_CALLER_NOT_ALLOWED = 3151;

  // Error occurs when a call to a Custom Audience API reached the rate limit.
  CUSTOM_AUDIENCE_SERVICE_NOTIFY_FAILURE_RATE_LIMIT_REACHED = 3152;

  // Error occurs when a call to Custom Audience API runs into an unexpected error.
  CUSTOM_AUDIENCE_SERVICE_NOTIFY_FAILURE_INTERNAL_ERROR = 3153;

  // Error occurs when a coming call to a FLEDGE API is throttled.
  FLEDGE_API_THROTTLE_FILTER_RATE_LIMIT_REACHED = 3154;

  // Error occurs when a caller crossed the user boundary,
  APP_IMPORTANCE_FILTER_IMPORTANCE_CALLER_NOT_ALLOWED_TO_CROSS_USER_BOUNDARIES = 3155;

  // Error occurs when a caller's importance value is too high.
  // The higher the importance, the less possible it is from foreground.
  APP_IMPORTANCE_FILTER_IMPORTANCE_EXCEEDED_THRESHOLD = 3156;

  // Error occurs when the caller package is not in the FLEDGE allow-list.
  FLEDGE_ALLOW_LISTS_FILTER_PACKAGE_NOT_IN_ALLOW_LIST = 3157;

  // Error occurs when the total  owners of CAs on a device reached max allowed value.
  CUSTOM_AUDIENCE_QUANTITY_CHECKER_REACHED_MAX_NUMBER_OF_OWNER = 3158;

  // Error occurs when the CA counts on a device reached max allowed value.
  CUSTOM_AUDIENCE_QUANTITY_CHECKER_REACHED_MAX_NUMBER_OF_TOTAL_CUSTOM_AUDIENCE = 3159;

  // Error occurs when the per owner CA counts on a device reached max allowed value.
  CUSTOM_AUDIENCE_QUANTITY_CHECKER_REACHED_MAX_NUMBER_OF_CUSTOM_AUDIENCE_PER_OWNER = 3160;

  // Error occurs when fetchCustomAudience is disabled.
  FETCH_CUSTOM_AUDIENCE_IMPL_DISABLED = 3161;

  // Error occurs when the associated owner-buyer pair is quarantined.
  FETCH_CUSTOM_AUDIENCE_IMPL_QUARANTINED = 3162;

  // Error occurs when the header of a fetch Custom Audience request is too large.
  FETCH_CUSTOM_AUDIENCE_IMPL_REQUEST_CUSTOM_HEADER_EXCEEDS_SIZE_LIMIT = 3163;

  // Error occurs when fails to parse the fetch Custom Audience response string as a JSONObject.
  FETCH_CUSTOM_AUDIENCE_IMPL_INVALID_JSON_RESPONSE = 3164;

  // Error occurs when the fused Custom Audience object is missing field values.
  FETCH_CUSTOM_AUDIENCE_IMPL_INCOMPLETE_FUSED_CUSTOM_AUDIENCE = 3165;

  // Error occurs when the fused Custom Audience object exceeded max allows byte length.
  FETCH_CUSTOM_AUDIENCE_IMPL_FUSED_CUSTOM_AUDIENCE_EXCEEDS_SIZE_LIMIT = 3166;

  // Error occurs when the failed to send fetch CA success notification to caller.
  FETCH_CUSTOM_AUDIENCE_IMPL_UNABLE_TO_SEND_SUCCESSFUL_RESULT_TO_CALLBACK = 3167;

  // Error occurs when the failed to notify fetch CA failure to caller.
  FETCH_CUSTOM_AUDIENCE_IMPL_UNABLE_TO_SEND_FAILURE_TO_CALLBACK = 3168;

  // Error occurs when the user consent is revoked while fetching CA.
  FETCH_CUSTOM_AUDIENCE_IMPL_NOTIFY_FAILURE_FILTER_EXCEPTION_USER_CONSENT_REVOKED = 3169;

  // Error occurs when the caller of fetch CA is from background.
  FETCH_CUSTOM_AUDIENCE_IMPL_NOTIFY_FAILURE_FILTER_EXCEPTION_BACKGROUND_CALLER = 3170;

  // Error occurs when the caller of fetch CA is not allowed.
  FETCH_CUSTOM_AUDIENCE_IMPL_NOTIFY_FAILURE_FILTER_EXCEPTION_CALLER_NOT_ALLOWED = 3171;

  // Error occurs when the caller of fetch CA is unauthorized.
  FETCH_CUSTOM_AUDIENCE_IMPL_NOTIFY_FAILURE_FILTER_EXCEPTION_UNAUTHORIZED = 3172;

  // Error occurs when the caller of fetch CA reached the rate limit.
  FETCH_CUSTOM_AUDIENCE_IMPL_NOTIFY_FAILURE_FILTER_EXCEPTION_RATE_LIMIT_REACHED = 3173;

  // Error occurs when fetch CA call captured invalid arguments.
  FETCH_CUSTOM_AUDIENCE_IMPL_NOTIFY_FAILURE_ILLEGAL_ARGUMENT_ERROR = 3174;

  // Error occurs when fetch CA call captured invalid  objects.
  FETCH_CUSTOM_AUDIENCE_IMPL_NOTIFY_FAILURE_INVALID_OBJECT_ERROR = 3175;

  // Error occurs when fetch CA call reached server rate limit.
  FETCH_CUSTOM_AUDIENCE_IMPL_NOTIFY_FAILURE_SERVER_RATE_LIMIT_REACHED = 3176;

  // Error occurs when fetch CA call captured unexpected error.
  FETCH_CUSTOM_AUDIENCE_IMPL_NOTIFY_FAILURE_INTERNAL_ERROR = 3177;

  // Error occurs when failed to parse an Ad selection signal string to JSONObject.
  CUSTOM_AUDIENCE_BLOB_FAILED_PARSING_AD_SELECTION_SIGNALS_STRING_TO_JSON = 3178;

  // Error occurs when failed to initiate an AdSelectionSignals instance from a JSONObject.
  CUSTOM_AUDIENCE_BLOB_FAILED_INITIATING_AD_SELECTION_SIGNALS_FROM_JSON = 3179;

  // Error occurs when failed to get a string value from a JSONObject.
  CUSTOM_AUDIENCE_BLOB_FAILED_GETTING_STRING_VALUE_FROM_JSON_BY_KEY = 3180;

  // Error occurs when failed to get a time instant value from a JSONObject.
  CUSTOM_AUDIENCE_BLOB_FAILED_GETTING_TIME_INSTANT_FROM_JSON_BY_KEY = 3181;

  // Error occurs when failed to initiate a TrustedBiddingData instance fomr JSONObject.
  CUSTOM_AUDIENCE_BLOB_FAILED_GETTING_TRUSTED_BIDDING_DATA_FROM_JSON = 3182;

  // Error occurs when failed to get a string value from a JSONArray given index.
  CUSTOM_AUDIENCE_BLOB_FAILED_GETTING_STRING_FROM_JSON_ARRAY = 3183;

  // Error occurs when getting a null value from a JSONArray given index.
  CUSTOM_AUDIENCE_BLOB_NULL_ARGUMENT = 3184;

  // Error occurs when failed to create a JSONObject from a TrustedBiddingData instance.
  CUSTOM_AUDIENCE_BLOB_FAILED_GETTING_TRUSTED_BIDDING_DATA_AS_JSON_OBJECT = 3185;

  // Error occurs when failed to create a list of AdData instances from a JSONObject.
  CUSTOM_AUDIENCE_BLOB_FAILED_GETTING_ADS_FROM_JSON_OBJECT = 3186;

  // Error occurs when failed to get a string valure representing a render URI from a JSONObject given the key.
  CUSTOM_AUDIENCE_BLOB_FAILED_PARSING_RENDER_URI_IN_ADS_JSON_ARRAY = 3187;

  // Error occurs when Quarantine table maximum has been reached.
  CUSTOM_AUDIENCE_DAO_QUARANTINE_TABLE_MAX_REACHED = 3188;

  // Error occurs when caught invalid JSON invoking seller script during reporting impression.
  IMPRESSION_REPORTER_INVALID_JSON_SELLER = 3189;

  // Error occurs when caught invalid JSON invoking buyer script during reporting impression.
  IMPRESSION_REPORTER_INVALID_JSON_BUYER = 3190;

  // Error occurs when failed to fetch buyer script given a URI.
  IMPRESSION_REPORTER_ERROR_FETCHING_BUYER_SCRIPT_FROM_URI = 3191;

  // Error occurs when the seller's reporting URI is invalid.
  IMPRESSION_REPORTER_INVALID_SELLER_REPORTING_URI = 3192;

  // Error occurs when the buyer's reporting URI is invalid.
  IMPRESSION_REPORTER_INVALID_BUYER_REPORTING_URI = 3193;

  // Error occurs when failed to notify success to caller of reportImpression.
  IMPRESSION_REPORTER_NOTIFY_SUCCESS_TO_CALLER_FAILED = 3194;

  // Error occurs when GET call to a reporting URI failed.
  IMPRESSION_REPORTER_HTTP_GET_REPORTING_URL_FAILED = 3195;

  // Error occurs when report impression failed due to IO error.
  IMPRESSION_REPORTER_FAILED_DUE_TO_IO_ERROR_DURING_REPORTING = 3196;

  // Error occurs when report impression failed.
  IMPRESSION_REPORTER_FAILED_DURING_REPORTING = 3197;

  // Error occurs when the user consent is revoked while reporting impression.
  IMPRESSION_REPORTER_NOTIFY_FAILURE_FILTER_EXCEPTION_USER_CONSENT_REVOKED = 3198;

  // Error occurs when the caller of reporting impression is from background.
  IMPRESSION_REPORTER_NOTIFY_FAILURE_FILTER_EXCEPTION_BACKGROUND_CALLER = 3199;

  // Error occurs when the caller of reporting impression is not allowed.
  IMPRESSION_REPORTER_NOTIFY_FAILURE_FILTER_EXCEPTION_CALLER_NOT_ALLOWED = 3200;

  // Error occurs when the caller of reporting impression is unauthorized.
  IMPRESSION_REPORTER_NOTIFY_FAILURE_FILTER_EXCEPTION_UNAUTHORIZED = 3201;

  // Error occurs when the caller of reporting impression reached the rate limit.
  IMPRESSION_REPORTER_NOTIFY_FAILURE_FILTER_EXCEPTION_RATE_LIMIT_REACHED = 3202;

  // Error occurs when reporting impressioncall captured invalid arguments.
  IMPRESSION_REPORTER_NOTIFY_FAILURE_INVALID_ARGUMENT = 3203;

  // Error occurs when reporting impression call captured unexpected error.
  IMPRESSION_REPORTER_NOTIFY_FAILURE_INTERNAL_ERROR = 3204;

  // Error occurs when failed to notify failure to caller during reporting impression call.
  IMPRESSION_REPORTER_NOTIFY_FAILURE_TO_CALLER_FAILED = 3205;

  // Error occurs when the interaction key size exceeded max during reporting impression call.
  IMPRESSION_REPORTER_INTERACTION_KEY_SIZE_EXCEEDS_MAX = 3206;

  // Error occurs when the reporting URI size exceeded max during reporting impression call.
  IMPRESSION_REPORTER_INTERACTION_REPORTING_URI_SIZE_EXCEEDS_MAX = 3207;

  // Error occurs when the interaction URI is invalid during reporting impression call.
  IMPRESSION_REPORTER_INVALID_INTERACTION_URI = 3208;

  // Error occurs when the outcome selection logic is missing fetching seller reporting logic.
  JS_FETCHER_SELLER_MISSING_OUTCOME_SELECTION_LOGIC = 3209;

  // Error occurs when the outcome selection logic is missing fetching buyer reporting logic.
  JS_FETCHER_BUYER_MISSING_OUTCOME_SELECTION_LOGIC = 3210;

  // Error occurs when caught invalid JSON invoking seller script during reporting impression using the legacy reporter.
  IMPRESSION_REPORTER_LEGACY_INVALID_JSON = 3211;

  // Error occurs when failed to fetch buyer script given a URI using the legacy reporter.
  IMPRESSION_REPORTER_LEGACY_FETCHING_BUYER_SCRIPT_FAILED = 3212;

  // Error occurs when failed to notify success to caller of reportImpression using the legacy reporter.
  IMPRESSION_REPORTER_LEGACY_NOTIFY_SUCCESS_TO_CALLER_FAILED = 3213;

  // Error occurs when GET call to a reporting URI failed using the legacy reporter.
  IMPRESSION_REPORTER_LEGACY_GETTING_REPORTING_URL_FAILED = 3214;

  // Error occurs when the seller's reporting URI is invalid using the legacy reporter.
  IMPRESSION_REPORTER_LEGACY_INVALID_SELLER_REPORTING_URI = 3215;

  // Error occurs when the buyer's reporting URI is invalid using the legacy reporter.
  IMPRESSION_REPORTER_LEGACY_INVALID_BUYER_REPORTING_URI = 3216;

  // Error occurs when report impression failed due to IO error using the legacy reporter.
  IMPRESSION_REPORTER_LEGACY_FAILED_DUE_TO_IO_ERROR = 3217;

  // Error occurs when report impression failed using the legacy reporter.
  IMPRESSION_REPORTER_LEGACY_FAILED = 3218;

  // Error occurs when the user consent is revoked while reporting impression using the legacy reporter.
  IMPRESSION_REPORTER_LEGACY_NOTIFY_FAILURE_FILTER_EXCEPTION_USER_CONSENT_REVOKED = 3219;

  // Error occurs when the caller of reporting impression is from background using the legacy reporter.
  IMPRESSION_REPORTER_LEGACY_NOTIFY_FAILURE_FILTER_EXCEPTION_BACKGROUND_CALLER = 3220;

  // Error occurs when the caller of reporting impression is not allowed using the legacy reporter.
  IMPRESSION_REPORTER_LEGACY_NOTIFY_FAILURE_FILTER_EXCEPTION_CALLER_NOT_ALLOWED = 3221;

  // Error occurs when the caller of reporting impression is unauthorized using the legacy reporter.
  IMPRESSION_REPORTER_LEGACY_NOTIFY_FAILURE_FILTER_EXCEPTION_UNAUTHORIZED = 3222;

  // Error occurs when the caller of reporting impression reached the rate limit using the legacy reporter.
  IMPRESSION_REPORTER_LEGACY_NOTIFY_FAILURE_FILTER_EXCEPTION_RATE_LIMIT_REACHED = 3223;

  // Error occurs when reporting impressioncall captured invalid arguments using the legacy reporter.
  IMPRESSION_REPORTER_LEGACY_NOTIFY_FAILURE_INVALID_ARGUMENT = 3224;

  // Error occurs when reporting impression call captured unexpected error using the legacy reporter.
  IMPRESSION_REPORTER_LEGACY_NOTIFY_FAILURE_INTERNAL_ERROR = 3225;

  // Error occurs when failed to notify failure to caller during reporting impression call using the legacy reporter.
  IMPRESSION_REPORTER_LEGACY_NOTIFY_FAILURE_TO_CALLER_FAILED = 3226;

  // Error occurs when caught a malformed URI in https client.
  AD_SERVICES_HTTPS_CLIENT_URI_IS_MALFORMED = 3227;

  // Error occurs when failed to initiate connection with URL in https client.
  AD_SERVICES_HTTPS_CLIENT_OPENING_URL_FAILED = 3228;

  // Error occurs when caught a regular error in the response in https client.
  AD_SERVICES_HTTPS_CLIENT_HTTP_REQUEST_ERROR = 3229;

  // Error occurs when caught a retriable error in the response in https client.
  AD_SERVICES_HTTPS_CLIENT_HTTP_REQUEST_RETRIABLE_ERROR = 3230;

  // Error occurs when connection timeout reading response in https client.
  AD_SERVICES_HTTPS_CLIENT_TIMEOUT_READING_RESPONSE = 3231;

  // Error occurs when a null URI is passed to EnrollmentDao.
  ENROLLMENT_DAO_URI_INVALID = 3232;

  // Error occurs when a null API is passed to EnrollmentDao.
  ENROLLMENT_DAO_PRIVACY_API_INVALID = 3233;

  // Error occurs when failed to match an enrollment in EnrollmentDao.
  ENROLLMENT_DAO_URI_ENROLLMENT_MATCH_FAILED = 3234;

  // Error occurs when failed to get FLEDGE enrollment data from DB.
  ENROLLMENT_DAO_GET_FLEDGE_ENROLLMENT_DATA_FROM_DB_FAILED = 3235;

  // Error occurs when failed to get PAS enrollment data from DB.
  ENROLLMENT_DAO_GET_PAS_ENROLLMENT_DATA_FROM_DB_FAILED = 3236;

  // Error occurs when got llegal result returned by our calling function during report impression.
  REPORT_IMPRESSION_SCRIPT_ENGINE_ILLEGAL_RESULT_RETURNED_BY_CALLING_FUNCTION = 3237;

  // Error occurs when report result output has unexpected structure during report impression.
  REPORT_IMPRESSION_SCRIPT_ENGINE_UNEXPECTED_RESULT_STRUCTURE = 3238;

  // Error occurs when caught JS reference error during report impression.
  REPORT_IMPRESSION_SCRIPT_ENGINE_JS_REFERENCE_ERROR = 3239;

  // Error occurs when caught other JS error during report impression.
  REPORT_IMPRESSION_SCRIPT_ENGINE_JS_OTHER_ERROR = 3240;

  // Error occurs when failed to notify success to caller during an event reporting.
  EVENT_REPORTER_NOTIFY_SUCCESS_TO_CALLER_FAILED = 3241;

  // Error occurs when the user consent is revoked during an event reporting.
  EVENT_REPORTER_NOTIFY_FAILURE_FILTER_EXCEPTION_USER_CONSENT_REVOKED = 3242;

  // Error occurs when the caller of event reporting is from background.
  EVENT_REPORTER_NOTIFY_FAILURE_FILTER_EXCEPTION_BACKGROUND_CALLER = 3243;

  // Error occurs when the caller of event reporting is not allowed.
  EVENT_REPORTER_NOTIFY_FAILURE_FILTER_EXCEPTION_CALLER_NOT_ALLOWED = 3244;

  // Error occurs when the caller of event reporting is unauthorized.
  EVENT_REPORTER_NOTIFY_FAILURE_FILTER_EXCEPTION_UNAUTHORIZED = 3245;

  // Error occurs when the caller of event reporting reached the rate limit.
  EVENT_REPORTER_NOTIFY_FAILURE_FILTER_EXCEPTION_RATE_LIMIT_REACHED = 3246;

  // Error occurs when event reporting captured invalid arguments.
  EVENT_REPORTER_NOTIFY_FAILURE_INVALID_ARGUMENT = 3247;

  // Error occurs when event reporting call captured unexpected error.
  EVENT_REPORTER_NOTIFY_FAILURE_INTERNAL_ERROR = 3248;

  // Error occurs when failed to notify failure to caller during event reporting.
  EVENT_REPORTER_NOTIFY_FAILURE_TO_CALLER_FAILED = 3249;

  // Error occurs when failed to register an event during event reporting.
  REPORT_AND_REGISTER_EVENT_IMPL_REGISTER_EVENT_FAILED = 3250;

  // Error occurs when failed to report and register event due to IO exception.
  REPORT_AND_REGISTER_EVENT_IMPL_FAILED_DUE_TO_IO_EXCEPTION = 3251;

  // Error occurs when failed to report and register event due to unexpected error.
  REPORT_AND_REGISTER_EVENT_IMPL_FAILED_DUE_TO_INTERNAL_ERROR = 3252;

  // Error occurs when failed to report and register event due to IO exception using fallback.
  REPORT_AND_REGISTER_EVENT_FALLBACK_IMPL_FAILED_DUE_TO_IO_EXCEPTION = 3253;

  // Error occurs when failed to report and register event due to unexpected error using fallback.
  REPORT_AND_REGISTER_EVENT_FALLBACK_IMPL_FAILED_DUE_TO_INTERNAL_ERROR = 3254;

  // Error occurs when failed to report event due to IO exception using fallback.
  REPORT_EVENT_IMPL_FAILED_DUE_TO_IO_EXCEPTION = 3255;

  // Error occurs when failed to report event due to unexpected error using fallback.
  REPORT_EVENT_IMPL_FAILED_DUE_TO_INTERNAL_ERROR = 3256;

  // Error occurs when the version in the header of fetch JS response is not a numeric value.
  JS_FETCHER_NON_NUMERIC_VERSION_FOR_JS_PAYLOAD = 3257;

  // Error occurred when API type is unknown while trying to get enrollment data for an Ad tech.
  FLEDGE_AUTHORIZATION_FILTER_INVALID_API_TYPE = 3258;

  // Error occurred when failed to fetch enrollment data for an Ad tech.
  FLEDGE_AUTHORIZATION_FILTER_ENROLLMENT_NOT_FOUND = 3259;

  // Error occurred when an Ad tech from given URI is blocked.
  FLEDGE_AUTHORIZATION_FILTER_NOT_ALLOWED_ENROLLMENT_FROM_URI_BLOCKED = 3260;

  // Error occurred when the feature of scheduling an CA update is disabled.
  SCHEDULE_CUSTOM_AUDIENCE_UPDATE_IMPL_DISABLED = 3261;

  // Error occurred when the user consent is revoked when attempting to schedule an CA update.
  SCHEDULE_CUSTOM_AUDIENCE_UPDATE_IMPL_USER_CONSENT_REVOKED = 3262;

  // Error occurred when failed to filter a schedule CA update request.
  SCHEDULE_CUSTOM_AUDIENCE_UPDATE_IMPL_FILTER_EXCEPTION = 3263;

  // Error occurred when failed schedule an CA update due to a pending schedule.
  CUSTOM_AUDIENCE_DAO_FAILED_DUE_TO_PENDING_SCHEDULE = 3264;

  // Error occurred when failed to notify success after scheduled an CA update.
  SCHEDULE_CUSTOM_AUDIENCE_UPDATE_IMPL_NOTIFY_SUCCESS_TO_CALLER_FAILED = 3265;

  // Error occurred when failed to schedule an CA update because the user consent is revoked.
  SCHEDULE_CUSTOM_AUDIENCE_UPDATE_IMPL_NOTIFY_FAILURE_FILTER_EXCEPTION_USER_CONSENT_REVOKED = 3266;

  // Error occurred when failed to schedule an CA update because the caller is from background.
  SCHEDULE_CUSTOM_AUDIENCE_UPDATE_IMPL_NOTIFY_FAILURE_FILTER_EXCEPTION_BACKGROUND_CALLER = 3267;

  // Error occurred when failed to schedule an CA update because the caller package is not allowed.
  SCHEDULE_CUSTOM_AUDIENCE_UPDATE_IMPL_NOTIFY_FAILURE_FILTER_EXCEPTION_CALLER_NOT_ALLOWED = 3268;

  // Error occurred when failed to schedule an CA update because the caller is not authorized.
  SCHEDULE_CUSTOM_AUDIENCE_UPDATE_IMPL_NOTIFY_FAILURE_FILTER_EXCEPTION_UNAUTHORIZED = 3269;

  // Error occurred when failed to schedule an CA update because the caller exceeded rate limit.
  SCHEDULE_CUSTOM_AUDIENCE_UPDATE_IMPL_NOTIFY_FAILURE_FILTER_EXCEPTION_RATE_LIMIT_REACHED = 3270;

  // Error occurred when failed to schedule an CA update because of an invalid object.
  SCHEDULE_CUSTOM_AUDIENCE_UPDATE_IMPL_NOTIFY_FAILURE_INVALID_OBJECT = 3271;

  // Error occurred when failed to schedule an CA update because request reached server rate limit.
  SCHEDULE_CUSTOM_AUDIENCE_UPDATE_IMPL_NOTIFY_FAILURE_SERVER_RATE_LIMIT_REACHED = 3272;

  // Error occurred when failed to schedule an CA update because of an invalid argument.
  SCHEDULE_CUSTOM_AUDIENCE_UPDATE_IMPL_NOTIFY_FAILURE_INVALID_ARGUMENT = 3273;

  // Error occurred when failed to schedule an CA update because of a pending schedule.
  SCHEDULE_CUSTOM_AUDIENCE_UPDATE_IMPL_NOTIFY_FAILURE_UPDATE_ALREADY_PENDING_ERROR = 3274;

  // Error occurred when failed to schedule an CA update because of an unexpected error.
  SCHEDULE_CUSTOM_AUDIENCE_UPDATE_IMPL_NOTIFY_FAILURE_INTERNAL_ERROR = 3275;

  // Error occurred when failed to schedule an CA update when fail to notify failure to the caller.
  SCHEDULE_CUSTOM_AUDIENCE_UPDATE_IMPL_NOTIFY_FAILURE_TO_CALLER_FAILED = 3276;

  // Error during decryption because context was not found in the database.
  OBLIVIOUS_HTTP_ENCRYPTOR_CONTEXT_NOT_FOUND = 3277;

  // Error during parsing auction result: data compression of given version is not found.
  PERSIST_AD_SELECTION_RESULT_PARSING_RESPONSE_DATA_COMPRESSION_NOT_FOUND = 3278;

  // Error during parsing auction result: payload extractor  of given version is not found.
  PERSIST_AD_SELECTION_RESULT_PARSING_RESPONSE_PAYLOAD_EXTRACTOR_NOT_FOUND = 3279;

  // Error during parsing auction result: data size is greater than payload size.
  PERSIST_AD_SELECTION_RESULT_PARSING_RESPONSE_DATA_SIZE_GREATER_THAN_PAYLOAD_SIZE = 3280;

  // UX errors: 4001-5000
  CONSENT_REVOKED_ERROR = 4001;

  // Error occurred when failed to get downloaded OTA file URI.
  DOWNLOADED_OTA_FILE_ERROR = 4002;

  // Exception while trying to add ResourcesProvider.
  RESOURCES_PROVIDER_ADD_ERROR = 4003;

  // Exception occurred when unable to load MDD file group
  LOAD_MDD_FILE_GROUP_FAILURE = 4004;

  // Dismiss notification error
  DISMISS_NOTIFICATION_FAILURE = 4005;

  // Datastore exception while get content
  DATASTORE_EXCEPTION_WHILE_GET_CONTENT = 4006;

  // Datastore exception while recording notification
  DATASTORE_EXCEPTION_WHILE_RECORDING_NOTIFICATION = 4007;

  // Datastore exception while recording default consent.
  DATASTORE_EXCEPTION_WHILE_RECORDING_DEFAULT_CONSENT = 4008;

  // Exception while recording manual consent interaction
  DATASTORE_EXCEPTION_WHILE_RECORDING_MANUAL_CONSENT_INTERACTION = 4009;

  // Exception while saving privacy sandbox feature.
  PRIVACY_SANDBOX_SAVE_FAILURE = 4010;

  // Error message indicating invalid consent source of truth.
  INVALID_CONSENT_SOURCE_OF_TRUTH = 4011;

  // Error message while calling get consent.
  ERROR_WHILE_GET_CONSENT = 4012;

  // App search consent data migration failure.
  APP_SEARCH_DATA_MIGRATION_FAILURE = 4013;

  // Adservices entry point failure.
  AD_SERVICES_ENTRY_POINT_FAILURE = 4014;

  // Used to be MEASUREMENT_FOREGROUND_UNKNOWN_FAILURE but renamed in
  // commit 94af8756d2f03ff17924721ee1b7c4a4520377ff
  RESERVED_ERROR_CODE_4015 = 4015;

  // UX Enum is unsupported
  UNSUPPORTED_UX = 4016;

  // Exception when calling setAdsPersonalizationStatus API
  SET_ADS_PERSONALIZATION_STATUS_ERROR = 4017;

  // FederatedCompute errors: 5001-6000
  // Datastore exception while deleting a federated task.
  DELETE_TASK_FAILURE = 5001;

  // Exception while trying to close file descriptor.
  FILE_DESCRIPTOR_CLOSE_ERROR = 5002;

  // Error message indicating invalid federated job plan type.
  CLIENT_PLAN_SPEC_ERROR = 5003;

  // Exception when trying to parse protobuf message.
  INVALID_PROTOBUF_ERROR = 5004;

  // Exception occurred when isolated training process runs.
  ISOLATED_TRAINING_PROCESS_ERROR = 5005;

  // Exception while trying to iterate data.
  ITERATOR_NEXT_FAILURE = 5006;

  // Timeout exception while trying to iterate data.
  ITERATOR__NEXT_TIMEOUT = 5007;

  // Back Compat errors: 6001-7000
  // AdExtDataService get failed
  GET_ADEXT_DATA_SERVICE_ERROR = 6001;

  // AdExtDataService put failed
  PUT_ADEXT_DATA_SERVICE_ERROR = 6002;

  // Failed to cancel background jobs in back compat init.
  BACK_COMPAT_INIT_CANCEL_JOB_FAILURE = 6003;

  // Failed to update UI activity enabled setting in back compat init.
  BACK_COMPAT_INIT_UPDATE_ACTIVITY_FAILURE = 6004;

  // Failed to update service enabled setting in back compat init.
  BACK_COMPAT_INIT_UPDATE_SERVICE_FAILURE = 6005;

  // Failed to enable package changed receiver in back compat init.
  BACK_COMPAT_INIT_ENABLE_RECEIVER_FAILURE = 6006;

  // Failed to disable package changed receiver in back compat init.
  BACK_COMPAT_INIT_DISABLE_RECEIVER_FAILURE = 6007;

  // Failed to run back compat init in boot completed receiver.
  BACK_COMPAT_INIT_BOOT_COMPLETED_RECEIVER_FAILURE = 6008;

  // IAPC errors: 7001-8000
  // AdIdProviderService is not available.
  IAPC_AD_ID_PROVIDER_NOT_AVAILABLE = 7001;
  // Exception when calling UpdateAdId API in service side.
  IAPC_UPDATE_AD_ID_API_ERROR = 7002;

  // ODP errors: 8001-9000
  // ODP generic error
  ON_DEVICE_PERSONALIZATION_ERROR = 8001;

  // ODP execute Isolated service error
  ISOLATED_SERVICE_EXECUTE_ERROR = 8002;

  // ODP download Isolated service error
  ISOLATED_SERVICE_DOWNLOAD_ERROR = 8003;

  // ODP render Isolated service error
  ISOLATED_SERVICE_RENDER_ERROR = 8004;

  // ODP web view event Isolated service error
  ISOLATED_SERVICE_EVENT_ERROR = 8005;

  // ODP training example Isolated service error
  ISOLATED_SERVICE_TRAINING_EXAMPLE_ERROR = 8006;

  // ODP web trigger Isolated service error
  ISOLATED_SERVICE_WEB_TRIGGER_ERROR = 8007;
}
