protobuf/api/problem_code.proto (344 lines of code) (raw):

/* * Copyright 2021 Google LLC * * 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 * * https://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 = "proto3"; package java.cloud.datastore.proto.logs_enums; option java_package = "com.google.cloud.datastore.logs"; option java_multiple_files = true; // NOTE: All of the following enums are used in logs. See // <internal14> // for rules when editing. // Next ID: 115 enum ProblemCode { PROBLEM_CODE_UNSPECIFIED = 0; // A transaction handle was not found in the handle map in this backend. MISSING_TRANSACTION_HANDLE = 1; // A transaction failed because of another concurrent transaction, or // contention. TRANSACTION_CONCURRENCY_ERROR = 2; // A call needs a specific storage feature that is missing from the selected // storage instance. MISSING_STORAGE_FEATURE = 3; // The requested index definition already exists. INDEX_ALREADY_EXISTS = 4; // IAM was temporarily unavailable. Note: IAM errors are inherently safe to // retry on because they inhibit any mutations. IAM_UNAVAILABLE = 5; // IAM responded with an unexpected error code. IAM_UNEXPECTED_RESPONSE = 6; // Legacy problems, i.e. ones without a particular {@link ProblemCode}. // Do not use for specific problems! LEGACY = 7; // A write failed because the user requested that the entity does not exist // (insert) but it was found in storage. WRITE_PRECONDITION_FAILED_ALREADY_EXISTS = 8; // A write failed because the user requested that the entity exist (update) // but it was not found in storage. WRITE_PRECONDITION_FAILED_NOT_FOUND = 9; // A write failed because the user requested that the entity had a given // version number, but that version number was ahead of the entity's version. WRITE_PRECONDITION_FAILED_FUTURE_BASE_VERSION = 10; // A write failed because the user requested that the entity had a given // version number, but that version number was behind the entity's version. WRITE_PRECONDITION_FAILED_PAST_BASE_VERSION = 11; // The metadata record that stores the list of builtin indexes and their // serving states is unexpectedly missing from the metadata database. MISSING_BUILTIN_INDEX_RECORD = 12; // There's no EUC attached to the RPC. MISSING_EUC = 15; // A user attempted to write an entity that is too large. ENTITY_SIZE_OVER_LIMIT = 17; // A user attempted to create an index that would exceed the indexing limit. MAX_ACTIVE_INDEXES_PER_DATABASE_EXCEEDED = 18; // A user attempted to disable an index when doing so would exceed the # of // allowable concurrent disabling indexes. MAX_DEACTIVATING_INDEXES_PER_DATABASE_EXCEEDED = 19; // A user attempted to create a single field configuration that would exceed // the allowable limit. MAX_UP_SINGLE_FIELD_RULES_EXCEEDED = 20; // A user attempted to create a ttl config that would exceed // the allowable limit per kind. MAX_UP_TTL_CONFIG_PER_KIND_EXCEEDED = 110; // A user attempted to disable a single field rule when doing so // would exceed the # of allowable concurrent disabling rules. MAX_DOWN_SINGLE_FIELD_RULES_EXCEEDED = 21; // A scheduler limit was exceeded, e.g. queued byte size. SCHEDULER_LIMIT = 22; // A quota limit was exceeded. DEMAND_QUOTA_EXCEEDED = 23; // Shimmed InitializeIndexing request cannot succeed before the // min_initialize_time. See http://go/firestore-v3-indexing-hacks for more // information. SHIM_MIN_INITIALIZE_TIME_IN_FUTURE = 24; // Shimmed InitializeIndexing cannot return successfully until after // InitializeIndexingResponse.min_start_time. See // http://go/firestore-v3-indexing-hacks for more information. SHIM_MIN_START_TIME_IN_FUTURE = 25; // Couldn't lookup the CLC owner for a particular database. CHANGE_LISTENER_LOOKUP_UNAVAILABLE = 26; // The underlying storage layer could not handle a transaction of the given // size. TRANSACTION_TOO_BIG = 27; // Megamover journal contained either no entries or just a single tombstone. NEED_TO_REREAD_MEGAMOVER_JOURNAL = 28; // The backing storage instance was unavailable to server requests for // unanticipated reasons. BACKING_STORE_IS_BROKEN = 29; // We were unsuccessful in sending Prepares to all authoritative CLCs for this // database. It is surfaced as {@code Code.Unavailable}. CHANGE_LISTENER_PREPARE_FAILED = 30; // A key without app has other elements. The validation guarded by the // following switch failed: // http://google3/apphosting/datastore/config.proto?l=177&rcl=203046563 NON_EMPTY_ENTITY_REF_WITHOUT_APP = 31; // An entity specified an entity group that doesn't match its key. The // validation guarded by the following switch failed: // http://google3/apphosting/datastore/config.proto?l=169&rcl=203046563 ENTITY_GROUP_DOES_NOT_MATCH_KEY = 32; // An entity has unknown fields. The validation guarded by the following // switch failed: // http://google3/apphosting/datastore/config.proto?l=249&rcl=203046563 ENTITY_WITH_UNKNOWN_FIELDS = 33; // A key had a database even though support for databases is not allowed. The // validation guarded by the following switch failed: // http://google3/apphosting/datastore/config.proto?l=97&rcl=203046563 NO_DB_SUPPORT = 34; // A key name is not valid UTF-8. The validation guarded by the following // switch failed: // http://google3/apphosting/datastore/config.proto?l=214&rcl=203046563 KEY_NAME_NOT_UTF8 = 35; // A query filter has an incomplete key path. The validation guarded by the // following switch failed: // http://google3/apphosting/datastore/config.proto?l=125&rcl=203046563 INCOMPLETE_KEY_PATHS_IN_QUERY_FILTERS = 36; // A key is over the size limit. KEY_SIZE_OVER_LIMIT = 37; // A value key or entity value key references the a partition that matches the // partition of the entity that contains it. The validation guarded by the // following switch failed: // http://google3/apphosting/datastore/config.proto?l=219&rcl=203046563 CROSS_PARTITION_ENTITY_REF = 38; // A property name is not valid UTF-8. PROPERTY_NAME_NOT_UTF8 = 39; // A value has a meaning that doesn't match its type. The validation guarded // by the following switch failed: // http://google3/apphosting/datastore/config.proto?l=186&rcl=203046563 PROPERTY_VALUE_MEANING_DOES_NOT_MATCH_TYPE = 40; // A point value doesn't have the correct meaning. The validation guarded by // the following switch failed: // http://google3/apphosting/datastore/config.proto?l=243&rcl=203046563 GEO_POINT_HAS_UNEXPECTED_MEANING = 41; // A property with the EMPTY_LIST meaning contains a value. EMPTY_LIST_MEANING_WITH_VALUE = 90; // A property with a meaning that requires an integer value (e.g. GD_WHEN) // does not contain an integer value. INTEGER_MEANING_MISSING_INTEGER_VALUE = 91; // A property with the GEORSS_POINT meaning does not contain a point value. GEORSS_POINT_MEANING_MISSING_POINT_VALUE = 92; // A GEO point has an invalid value. A validation that may have been guarded // by the following switch failed: // http://google3/apphosting/datastore/config.proto?l=238&rcl=203046563 INVALID_GEO_POINT = 42; // A user value string field is not valid UTF-8. The validation guarded by the // following switch failed: // http://google3/apphosting/datastore/config.proto?l=155&rcl=203046563 USER_FIELD_VALUE_NOT_UTF8 = 43; reserved 44; // A value string with meaning is not valid UTF-8. The validation guarded by // the following switch failed: // http://google3/apphosting/datastore/config.proto?l=254&rcl=203046563 PROPERTY_VALUE_STRING_WITH_MEANING_NOT_UTF8 = 45; // An unindexed value containing an entity proto isn't valid. The validation // guarded by the following switch failed: // http://google3/apphosting/datastore/config.proto?l=231&rcl=203046563 INVALID_UNINDEXED_PROPERTY_VALUE = 46; // A kind is not valid UTF8. The validation guarded by the following switch // failed: // http://google3/apphosting/datastore/config.proto?l=211&rcl=203046563 KIND_NOT_UTF8 = 47; // A value is nested deeper than the max nesting limit. VALUE_NESTED_TOO_DEEPLY = 48; // An indexed property has a name that collides with another one, for // example: {"A": {"B": 1}, "A.C": 1} INDEXED_PROPERTY_NAME_COLLISION = 49; // A property with an entity has a value that could not be deserialized. PROTO_SERIALIZATION_FAILURE = 50; // Human accesses to internal RPC services must include a structured // justification, e.g. via admin_session. HUMAN_CALLER_WITHOUT_JUSTIFICATION = 51; // General error when the user sets an unsupported value for a field. UNSUPPORTED_FIELD_VALUE = 52; // The underlying storage layer could not handle a batch write of the // given size. BATCH_WRITE_TOO_BIG = 53; // The same document cannot be written more than once in a single request. BATCH_WRITE_INDISTINCT_DOCUMENTS = 54; // For a condition on primary key the property value should be a reference. NO_REFERENCE_VALUE_FOR_PRIMARY_KEY = 55; // A Prepare failed with RESOURCE_EXHAUSTED indicating that this database's // write qps or bandwidth usage is overlimit. CHANGE_LISTENER_PREPARE_RESOURCE_EXHAUSTED = 56; // Megastore backends do not support 'OR' queries. DISJUNCTIVE_QUERIES_NOT_SUPPORTED = 57; // Only a single 'IN' or 'ARRAY_CONTAINS_ANY' or '!=' operator is allowed // per query. ONLY_SINGLE_DISJUNCTIVE_OPERATOR = 58; // Trying to normalize a query into DNF was going to result in too many // disjunctions. TOO_MANY_NORMALIZED_DISJUNCTIONS = 59; reserved 60; // The requested snapshot is too old for the system to serve. SNAPSHOT_TOO_OLD = 61; // The requested snapshot is in the future and unservable. SNAPSHOT_TOO_NEW = 88; /** Multiple types were set for a property value. */ PROPERTY_VALUE_WITH_MULTIPLE_TYPES_SET = 62; /** A property value has a meaning that can't be indexed. */ UNINDEXABLE_MEANING = 63; /** A path has both an id and name set. */ PATH_WITH_BOTH_ID_AND_NAME_SET = 64; /** A property has an unknown meaning uri. */ PROPERTY_WITH_UNKNOWN_MEANING_URI = 65; /** A property does not have a multiple field set where it should. */ PROPERTY_WITH_INVALID_MULTIPLE_FIELD = 66; /** An entity key path is empty. */ EMPTY_KEY_PATH = 67; /** An entity owner contains a nickname. */ OWNER_CONTAINS_NICKNAME = 68; /** This backend cannot process this type of project. */ PROJECT_STATE_NOT_SUPPORTED = 69; // The serving state was incorrect according to the call. SERVING_STATE_CHECK_FAILED = 70; // The project has DATASTORE_BACKEND_ONLY_PROCESS_ROOT_USER_REQUESTS or // DATASTORE_BACKEND_ONLY_PROCESS_ROOT_USER_WRITE_REQUESTS option, a request // call with something other than Googler LOAS credentials is rejected. NON_ROOT_USER_REQUEST_REJECTION = 71; // The request to update an index contained a different id than the one in // persistence. INDEX_ID_MISMATCH = 72; // Spanner transaction was aborted due to invalid commit time. // // The timestamp that Spanner picked for the commit was below the minimum // timestamp specified by the Backend. SPANNER_COMMIT_TIME_TOO_SMALL = 73; // Spanner transaction was aborted due to invalid commit time. // // The timestamp that Spanner picked for the commit was above the maximum // timestamp specified by the Backend. The Backend specifies minimum and // maximum commit times in order to keep the Change-Log-Cache in sync with // Spanner. SPANNER_COMMIT_TIME_TOO_LARGE = 74; // Spanner transaction was aborted due to lock conflicts. // // This occurs when multiple transactions compete for the same resource, // go/spanner-txns#deadlock-detection. The suggested customer behavior is to // retry locally. SPANNER_ABORTED_LOCK_CONFLICT = 75; // Spanner transaction was aborted due to a stale assignment in the Lamprey. // // This occurs when Spanner moves a tablet (normally driven from user load // patterns) and the Lamprey local to the Backend attempts to commit to it // using its old location. SPANNER_DIRECTORY_NOT_IN_TABLET = 77; // Spanner transaction failed due to a generic ABORTED error code. // // This can come a number of issues, such as tablet pushback. SPANNER_GENERIC_ABORT = 81; // An unindexed, unparseable nested entity is too long UNINDEXED_UNPARSEABLE_NESTED_ENTITY_TOO_LONG = 76; // An index entry is too large and we cannot write it to storage. INDEX_ENTRY_TOO_LARGE = 78; // A server decided not to process a request because of a routing error of // some sort. ROUTING_ERROR = 79; // Was unable to fetch from local metadata. LOCAL_METADATA_FETCH_FAIL = 80; // Was unable to fetch from the local VpcScRestricted cache. LOCAL_VPC_SC_RESTRICTED_FETCH_FAIL = 114; // Metadata fetch attempted without specifying instance/shard. MISSING_FIRESTORE_DATABASE_LOCATION_EXTENSION = 82; // App does not have the required state to copy back data from Spanner to // Megastore (to support Datastore-to-Firestore rollback). SPANNER_TO_MEGASTORE_COPY_NOT_ALLOWED = 83; // At least one of the entities in the write exceeds the index entries count // or bytes limit (https://firebase.google.com/docs/firestore/quotas). INDEX_ENTRIES_COUNT_LIMIT_EXCEEDED = 84; INDEX_ENTRIES_BYTES_LIMIT_EXCEEDED = 85; // Advisory codes for understanding b/179304810. // entity.entity_group in a nested is empty but the key is not. NESTED_ENTITY_ENTITY_GROUP_EMPTY = 86; // entity.entity_group in a nested entity has more than one path element. NESTED_ENTITY_ENTITY_GROUP_MULTIPLE_PATH_ELEMENTS = 87; // A property contains an empty list while having the multiple field set EMPTY_LIST_WITH_MULTIPLE = 89; // We were unsuccessful in sending Prepares to all authoritative ChangeServers // for this write request. It is surfaced as {@code Code.Unavailable}. SHARDED_CHANGE_LISTENER_PREPARE_FAILED = 99; // A Prepare failed with RESOURCE_EXHAUSTED indicating that this database's // write qps or bandwidth usage is overlimit. It is surfaced as // {@code Code.Resource_Exhausted}. SHARDED_CHANGE_LISTENER_PREPARE_RESOURCE_EXHAUSTED = 100; // We were unsuccessful in doing lookup of the authoritative ChangeServers // for this write request. It is surfaced as {@code Code.Unavailable}. SHARDED_CHANGE_LISTENER_LOOKUP_FAILED = 101; // We were unsuccessful in doing a lookup of authoritative ChangeServers for // this write request because we don't have assignment information for a // certain document in the request. It will be converted into // SHARDED_CHANGE_LISTENER_LOOKUP_FAILED and surfaced as // {@code Code.Unavailable}. SHARDED_CHANGE_LISTENER_LOOKUP_NOT_OWNED_ANYWHERE = 102; // We were unsuccessful in doing a lookup of authoritative ChangeServers for // this write request because we don't have any assignment information. // It will be converted into SHARDED_CHANGE_LISTENER_LOOKUP_FAILED and // surfaced as {@code Code.Unavailable}. SHARDED_CHANGE_LISTENER_LOOKUP_NO_VALID_ASSIGNMENT = 103; // We were unsuccessful in doing a lookup of authoritative ChangeServers for // this write request because we don't have replica group information for a // certain document in the request. It will be converted into // SHARDED_CHANGE_LISTENER_LOOKUP_FAILED and surfaced as // {@code Code.Unavailable}. SHARDED_CHANGE_LISTENER_LOOKUP_NO_VALID_REPLICA_GROUP = 104; // We were unsuccessful in doing a lookup of authoritative ChangeServers for // this write request because there is no documents in the request. It will be // converted into SHARDED_CHANGE_LISTENER_LOOKUP_FAILED and surfaced as // {@code Code.Internal} because the error should have been found earlier. SHARDED_CHANGE_LISTENER_LOOKUP_MISSING_KEYS = 105; // We were unsuccessful in doing a lookup of authoritative ChangeServers for // this write request because the pool information doesn't match. // It will be converted into SHARDED_CHANGE_LISTENER_LOOKUP_FAILED and // surfaced as {@code Code.Internal}. SHARDED_CHANGE_LISTENER_LOOKUP_INCORRECT_POOL = 106; // We were unsuccessful in doing a lookup of authoritative ChangeServers for // this write request because the path of a certain document in the request is // illegal. It will be converted into SHARDED_CHANGE_LISTENER_LOOKUP_FAILED // and surfaced as {@code Code.Internal} because the error should have been // found earlier. SHARDED_CHANGE_LISTENER_LOOKUP_INVALID_KEYS = 107; // We were unsuccessful in doing a lookup of authoritative ChangeServers for // this write request because it fails to get Stub from the StubCache based // on the ChangeServer address. SHARDED_CHANGE_LISTENER_LOOKUP_INVALID_STUB_CACHE = 108; // The database is not ready for Wipeout since it is not hard deleted. BAD_WIPEOUT_REQUEST_DATABASE_NOT_DELETED = 109; // We were unsuccessful in sending Prepares to all authoritative ChangeServers // for this pool because a peer pool has failed its Prepare phase. SHARDED_CHANGE_LISTENER_PEER_POOL_PREPARE_FAILED = 111; // The ownership lookup (with retries) for a certain set of documents failed // permanently because it fails too many times. SHARDED_CHANGE_LISTENER_LOOKUP_FAILED_TOO_MANY_RETRIES = 112; // The ownership lookup (with retries) for a certain set of documents failed // permanently because it hits a non-retryable error. SHARDED_CHANGE_LISTENER_LOOKUP_NON_RETYABLE_ERROR = 113; }