kythe.io@v0.0.68-0.20240422202219-7225dbc01741/third_party/bazel/src/main/protobuf/failure_details.proto (about)

     1  // Copyright 2020 The Bazel Authors. All rights reserved.
     2  //
     3  // Licensed under the Apache License, Version 2.0 (the "License");
     4  // you may not use this file except in compliance with the License.
     5  // You may obtain a copy of the License at
     6  //
     7  //    http://www.apache.org/licenses/LICENSE-2.0
     8  //
     9  // Unless required by applicable law or agreed to in writing, software
    10  // distributed under the License is distributed on an "AS IS" BASIS,
    11  // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    12  // See the License for the specific language governing permissions and
    13  // limitations under the License.
    14  
    15  // This file's messages describe any failure(s) that occurred during Bazel's
    16  // handling of a request. The intent is to provide more detail to a Bazel client
    17  // than is conveyed with an exit code, to help those clients decide how to
    18  // respond to, or classify, a failure.
    19  
    20  syntax = "proto3";
    21  
    22  package failure_details;
    23  
    24  option java_package = "com.google.devtools.build.lib.server";
    25  
    26  import "google/protobuf/descriptor.proto";
    27  
    28  message FailureDetailMetadata {
    29    uint32 exit_code = 1;
    30  }
    31  
    32    extend google.protobuf.EnumValueOptions {
    33    FailureDetailMetadata metadata = 1078;
    34  }
    35  
    36  // The FailureDetail message type is designed such that consumers can extract a
    37  // basic classification of a FailureDetail message even if the consumer was
    38  // built with a stale definition. This forward compatibility is implemented via
    39  // conventions on FailureDetail and its submessage types, as follows.
    40  //
    41  // *** FailureDetail field numbers
    42  //
    43  // Field numbers 1 through 100 (inclusive) are reserved for generally applicable
    44  // values. Any number of these fields may be set on a FailureDetail message.
    45  //
    46  // Field numbers 101 through 10,000 (inclusive) are reserved for use inside the
    47  // "oneof" structure. Only one of these values should be set on a FailureDetail
    48  // message.
    49  //
    50  // Additional fields numbers are unlikely to be needed, but, for extreme future-
    51  // proofing purposes, field numbers 10,001 through 1,000,000 (inclusive;
    52  // excluding protobuf's reserved range 19000 through 19999) are reserved for
    53  // additional generally applicable values.
    54  //
    55  // *** FailureDetail's "oneof" submessages
    56  //
    57  // Each field in the "oneof" structure is a submessage corresponding to a
    58  // category of failure.
    59  //
    60  // In each of these submessage types, field number 1 is an enum whose values
    61  // correspond to a subcategory of the failure. Generally, the enum's constant
    62  // which maps to 0 should be interpreted as "unspecified", though this is not
    63  // required.
    64  //
    65  // *** Recommended forward compatibility strategy
    66  //
    67  // The recommended forward compatibility strategy is to reduce a FailureDetail
    68  // message to a pair of integers.
    69  //
    70  // The first integer corresponds to the field number of the submessage set
    71  // inside FailureDetail's "oneof", which corresponds with the failure's
    72  // category.
    73  //
    74  // The second integer corresponds to the value of the enum at field number 1
    75  // within that submessage, which corresponds with the failure's subcategory.
    76  //
    77  // WARNING: This functionality is experimental and should not be relied on at
    78  // this time.
    79  // TODO(mschaller): remove experimental warning
    80  message FailureDetail {
    81    // A short human-readable message describing the failure, for debugging.
    82    //
    83    // This value is *not* intended to be used algorithmically.
    84    string message = 1;
    85  
    86    // Reserved for future generally applicable values. Any of these may be set.
    87    reserved 2 to 100;
    88  
    89    oneof category {
    90      Interrupted interrupted = 101;
    91      ExternalRepository external_repository = 103;
    92      BuildProgress build_progress = 104;
    93      RemoteOptions remote_options = 106;
    94      ClientEnvironment client_environment = 107;
    95      Crash crash = 108;
    96      SymlinkForest symlink_forest = 110;
    97      PackageOptions package_options = 114;
    98      RemoteExecution remote_execution = 115;
    99      Execution execution = 116;
   100      Workspaces workspaces = 117;
   101      CrashOptions crash_options = 118;
   102      Filesystem filesystem = 119;
   103      ExecutionOptions execution_options = 121;
   104      Command command = 122;
   105      Spawn spawn = 123;
   106      GrpcServer grpc_server = 124;
   107      CanonicalizeFlags canonicalize_flags = 125;
   108      BuildConfiguration build_configuration = 126;
   109      InfoCommand info_command = 127;
   110      MemoryOptions memory_options = 129;
   111      Query query = 130;
   112      LocalExecution local_execution = 132;
   113      ActionCache action_cache = 134;
   114      FetchCommand fetch_command = 135;
   115      SyncCommand sync_command = 136;
   116      Sandbox sandbox = 137;
   117      IncludeScanning include_scanning = 139;
   118      TestCommand test_command = 140;
   119      ActionQuery action_query = 141;
   120      TargetPatterns target_patterns = 142;
   121      CleanCommand clean_command = 144;
   122      ConfigCommand config_command = 145;
   123      ConfigurableQuery configurable_query = 146;
   124      DumpCommand dump_command = 147;
   125      HelpCommand help_command = 148;
   126      MobileInstall mobile_install = 150;
   127      ProfileCommand profile_command = 151;
   128      RunCommand run_command = 152;
   129      VersionCommand version_command = 153;
   130      PrintActionCommand print_action_command = 154;
   131      WorkspaceStatus workspace_status = 158;
   132      JavaCompile java_compile = 159;
   133      ActionRewinding action_rewinding = 160;
   134      CppCompile cpp_compile = 161;
   135      StarlarkAction starlark_action = 162;
   136      NinjaAction ninja_action = 163;
   137      DynamicExecution dynamic_execution = 164;
   138      FailAction fail_action = 166;
   139      SymlinkAction symlink_action = 167;
   140      CppLink cpp_link = 168;
   141      LtoAction lto_action = 169;
   142      TestAction test_action = 172;
   143      Worker worker = 173;
   144      Analysis analysis = 174;
   145      PackageLoading package_loading = 175;
   146      Toolchain toolchain = 177;
   147      StarlarkLoading starlark_loading = 179;
   148      ExternalDeps external_deps = 181;
   149      DiffAwareness diff_awareness = 182;
   150      ModqueryCommand modquery_command = 183;
   151      BuildReport build_report = 184;
   152    }
   153  
   154    reserved 102; // For internal use
   155    reserved 105; // For internal use
   156    reserved 109; // For internal use
   157    reserved 111 to 113; // For internal use
   158    reserved 120; // For internal use
   159    reserved 128; // For internal use
   160    reserved 131; // For internal use
   161    reserved 133; // For internal use
   162    reserved 138; // For internal use
   163    reserved 143; // For internal use
   164    reserved 149; // For internal use
   165    reserved 155 to 157; // For internal use
   166    reserved 165; // For internal use
   167    reserved 170 to 171; // For internal use
   168    reserved 176; // For internal use
   169    reserved 178; // For internal use
   170    reserved 180; // For internal use
   171  }
   172  
   173  message Interrupted {
   174    enum Code {
   175      // Unknown interrupt. Avoid using this code, instead use INTERRUPTED.
   176      INTERRUPTED_UNKNOWN = 0 [(metadata) = { exit_code: 8 }];
   177  
   178      // Command was interrupted (cancelled).
   179      INTERRUPTED = 28 [(metadata) = { exit_code: 8 }];
   180  
   181      // The following more specific interrupt codes have been deprecated and
   182      // consolidated into INTERRUPTED.
   183      DEPRECATED_BUILD = 4 [(metadata) = { exit_code: 8 }];
   184      DEPRECATED_BUILD_COMPLETION = 5 [(metadata) = { exit_code: 8 }];
   185      DEPRECATED_PACKAGE_LOADING_SYNC = 6 [(metadata) = { exit_code: 8 }];
   186      DEPRECATED_EXECUTOR_COMPLETION = 7 [(metadata) = { exit_code: 8 }];
   187      DEPRECATED_COMMAND_DISPATCH = 8 [(metadata) = { exit_code: 8 }];
   188      DEPRECATED_INFO_ITEM = 9 [(metadata) = { exit_code: 8 }];
   189      DEPRECATED_AFTER_QUERY = 10 [(metadata) = { exit_code: 8 }];
   190      DEPRECATED_FETCH_COMMAND = 17 [(metadata) = { exit_code: 8 }];
   191      DEPRECATED_SYNC_COMMAND = 18 [(metadata) = { exit_code: 8 }];
   192      DEPRECATED_CLEAN_COMMAND = 20 [(metadata) = { exit_code: 8 }];
   193      DEPRECATED_MOBILE_INSTALL_COMMAND = 21 [(metadata) = { exit_code: 8 }];
   194      DEPRECATED_QUERY = 22 [(metadata) = { exit_code: 8 }];
   195      DEPRECATED_RUN_COMMAND = 23 [(metadata) = { exit_code: 8 }];
   196      DEPRECATED_OPTIONS_PARSING = 27 [(metadata) = { exit_code: 8 }];
   197  
   198      reserved 1 to 3; // For internal use
   199      reserved 11 to 16; // For internal use
   200      reserved 19; // For internal use
   201      reserved 24 to 26; // For internal use
   202    }
   203  
   204    Code code = 1;
   205  }
   206  
   207  message Spawn {
   208    enum Code {
   209      SPAWN_UNKNOWN = 0 [(metadata) = { exit_code: 37 }];
   210      // See the SpawnResult.Status Java enum for definitions of the following
   211      // Spawn failure codes.
   212      NON_ZERO_EXIT = 1 [(metadata) = { exit_code: 1 }];
   213      TIMEOUT = 2 [(metadata) = { exit_code: 1 }];
   214      // Note: Spawn OUT_OF_MEMORY leads to a BUILD_FAILURE exit_code because the
   215      // build tool itself did not run out of memory.
   216      OUT_OF_MEMORY = 3 [(metadata) = { exit_code: 1 }];
   217      EXECUTION_FAILED = 4 [(metadata) = { exit_code: 34 }];
   218      EXECUTION_DENIED = 5 [(metadata) = { exit_code: 1 }];
   219      REMOTE_CACHE_FAILED = 6 [(metadata) = { exit_code: 34 }];
   220      COMMAND_LINE_EXPANSION_FAILURE = 7 [(metadata) = { exit_code: 1 }];
   221      EXEC_IO_EXCEPTION = 8 [(metadata) = { exit_code: 36 }];
   222      INVALID_TIMEOUT = 9 [(metadata) = { exit_code: 1 }];
   223      INVALID_REMOTE_EXECUTION_PROPERTIES = 10 [(metadata) = { exit_code: 1 }];
   224      NO_USABLE_STRATEGY_FOUND = 11 [(metadata) = { exit_code: 1 }];
   225      // TODO(b/138456686): this code should be deprecated when SpawnResult is
   226      //   refactored to prohibit undetailed failures
   227      UNSPECIFIED_EXECUTION_FAILURE = 12 [(metadata) = { exit_code: 1 }];
   228      FORBIDDEN_INPUT = 13 [(metadata) = { exit_code: 1 }];
   229      REMOTE_CACHE_EVICTED = 14 [(metadata) = { exit_code: 39 }];
   230    }
   231    Code code = 1;
   232  
   233    // For Codes describing generic failure to spawn (eg. EXECUTION_FAILED and
   234    // EXECUTION_DENIED) the `catastrophic` field may be set to true indicating a
   235    // failure that immediately terminated the entire build tool.
   236    bool catastrophic = 2;
   237  
   238    // If Code is NON_ZERO_EXIT, the `spawn_exit_code` field may be set to the
   239    // non-zero exit code returned by the spawned process to the OS.
   240    //
   241    // NOTE: This field must not be confused with the build tool's overall
   242    // exit code.
   243    int32 spawn_exit_code = 3;
   244  }
   245  
   246  message ExternalRepository {
   247    enum Code {
   248      EXTERNAL_REPOSITORY_UNKNOWN = 0 [(metadata) = { exit_code: 37 }];
   249      OVERRIDE_DISALLOWED_MANAGED_DIRECTORIES = 1 [(metadata) = { exit_code: 2 }];
   250      BAD_DOWNLOADER_CONFIG = 2 [(metadata) = { exit_code: 2 }];
   251      REPOSITORY_MAPPING_RESOLUTION_FAILED = 3 [(metadata) = { exit_code: 37 }];
   252      CREDENTIALS_INIT_FAILURE = 4 [(metadata) = { exit_code: 2 }];
   253    }
   254    Code code = 1;
   255    // Additional data could include external repository names.
   256  }
   257  
   258  message BuildProgress {
   259    enum Code {
   260      BUILD_PROGRESS_UNKNOWN = 0 [(metadata) = { exit_code: 37 }];
   261      OUTPUT_INITIALIZATION = 3 [(metadata) = { exit_code: 36 }];
   262      BES_RUNS_PER_TEST_LIMIT_UNSUPPORTED = 4 [(metadata) = { exit_code: 2 }];
   263      BES_LOCAL_WRITE_ERROR = 5 [(metadata) = { exit_code: 36 }];
   264      BES_INITIALIZATION_ERROR = 6 [(metadata) = { exit_code: 36 }];
   265      BES_UPLOAD_TIMEOUT_ERROR = 7 [(metadata) = { exit_code: 38 }];
   266      BES_FILE_WRITE_TIMEOUT = 8 [(metadata) = { exit_code: 38 }];
   267      BES_FILE_WRITE_IO_ERROR = 9 [(metadata) = { exit_code: 38 }];
   268      BES_FILE_WRITE_INTERRUPTED = 10 [(metadata) = { exit_code: 38 }];
   269      BES_FILE_WRITE_CANCELED = 11 [(metadata) = { exit_code: 38 }];
   270      BES_FILE_WRITE_UNKNOWN_ERROR = 12 [(metadata) = { exit_code: 38 }];
   271      BES_UPLOAD_LOCAL_FILE_ERROR = 13 [(metadata) = { exit_code: 38 }];
   272      BES_STREAM_NOT_RETRYING_FAILURE = 14 [(metadata) = { exit_code: 45 }];
   273      BES_STREAM_COMPLETED_WITH_UNACK_EVENTS_ERROR = 15
   274          [(metadata) = { exit_code: 45 }];
   275      BES_STREAM_COMPLETED_WITH_UNSENT_EVENTS_ERROR = 16
   276          [(metadata) = { exit_code: 45 }];
   277      BES_STREAM_COMPLETED_WITH_REMOTE_ERROR = 19
   278          [(metadata) = { exit_code: 45 }];
   279      BES_UPLOAD_RETRY_LIMIT_EXCEEDED_FAILURE = 17
   280          [(metadata) = { exit_code: 38 }];
   281      reserved 1, 2, 18; // For internal use
   282    }
   283    Code code = 1;
   284    // Additional data could include the build progress upload endpoint.
   285  }
   286  
   287  message RemoteOptions {
   288    enum Code {
   289      REMOTE_OPTIONS_UNKNOWN = 0 [(metadata) = { exit_code: 37 }];
   290      REMOTE_DEFAULT_EXEC_PROPERTIES_LOGIC_ERROR = 1
   291          [(metadata) = { exit_code: 2 }];
   292      // Credentials could not be read from the requested file/socket/process/etc.
   293      CREDENTIALS_READ_FAILURE = 2 [(metadata) = { exit_code: 36 }];
   294      // Credentials could not be written to a shared, temporary file.
   295      CREDENTIALS_WRITE_FAILURE = 3 [(metadata) = { exit_code: 36 }];
   296      DOWNLOADER_WITHOUT_GRPC_CACHE = 4 [(metadata) = { exit_code: 2 }];
   297      EXECUTION_WITH_INVALID_CACHE = 5 [(metadata) = { exit_code: 2 }];
   298    }
   299  
   300    Code code = 1;
   301  }
   302  
   303  message ClientEnvironment {
   304    enum Code {
   305      CLIENT_ENVIRONMENT_UNKNOWN = 0 [(metadata) = { exit_code: 37 }];
   306      CLIENT_CWD_MALFORMED = 1 [(metadata) = { exit_code: 2 }];
   307    }
   308  
   309    Code code = 1;
   310  }
   311  
   312  message Crash {
   313    enum Code {
   314      CRASH_UNKNOWN = 0 [(metadata) = { exit_code: 37 }];
   315      CRASH_OOM = 1 [(metadata) = { exit_code: 33 }];
   316    }
   317  
   318    Code code = 1;
   319  
   320    // The cause chain of the crash, with the outermost throwable first. Limited
   321    // to the outermost exception and at most 4 nested causes (so, max size of 5).
   322    repeated Throwable causes = 2;
   323  
   324    // True when the root cause of the crash was not an OutOfMemoryError, but
   325    // CRASH_OOM was chosen because an OutOfMemoryError was detected prior to the
   326    // crash.
   327    bool oom_detector_override = 3;
   328  }
   329  
   330  message Throwable {
   331    // The class name of the java.lang.Throwable.
   332    string throwable_class = 1;
   333    // The throwable's message.
   334    string message = 2;
   335    // The result of calling toString on the deepest (i.e. closest to the
   336    // throwable's construction site) 1000 (or fewer) StackTraceElements.
   337    // Unstructured to simplify string matching.
   338    repeated string stack_trace = 3;
   339  }
   340  
   341  message SymlinkForest {
   342    enum Code {
   343      SYMLINK_FOREST_UNKNOWN = 0 [(metadata) = { exit_code: 37 }];
   344      TOPLEVEL_OUTDIR_PACKAGE_PATH_CONFLICT = 1 [(metadata) = { exit_code: 2 }];
   345      TOPLEVEL_OUTDIR_USED_AS_SOURCE = 2 [(metadata) = { exit_code: 2 }];
   346      CREATION_FAILED = 3 [(metadata) = { exit_code: 2 }];
   347    }
   348  
   349    Code code = 1;
   350  }
   351  
   352  message BuildReport {
   353    enum Code {
   354      BUILD_REPORT_UNKNOWN = 0 [(metadata) = { exit_code: 37 }];
   355      BUILD_REPORT_UPLOADER_NEEDS_PACKAGE_PATHS = 1
   356          [(metadata) = { exit_code: 36 }];
   357      BUILD_REPORT_WRITE_FAILED = 2 [(metadata) = { exit_code: 36 }];
   358    }
   359  
   360    Code code = 1;
   361    // Additional data for partial failures might include the build report that
   362    // failed to be written.
   363  }
   364  
   365  message PackageOptions {
   366    enum Code {
   367      reserved 2, 3;  // For internal use
   368  
   369      PACKAGE_OPTIONS_UNKNOWN = 0 [(metadata) = { exit_code: 37 }];
   370      PACKAGE_PATH_INVALID = 1 [(metadata) = { exit_code: 2 }];
   371    }
   372  
   373    Code code = 1;
   374  }
   375  
   376  message RemoteExecution {
   377    // The association of some of these options with exit code 2, "command line
   378    // error", seems sketchy. Especially worth reconsidering are the channel init
   379    // failure modes, which can correspond to failures occurring in gRPC setup.
   380    // These all correspond with current Bazel behavior.
   381    enum Code {
   382      REMOTE_EXECUTION_UNKNOWN = 0 [(metadata) = { exit_code: 37 }];
   383      CAPABILITIES_QUERY_FAILURE = 1 [(metadata) = { exit_code: 34 }];
   384      CREDENTIALS_INIT_FAILURE = 2 [(metadata) = { exit_code: 2 }];
   385      CACHE_INIT_FAILURE = 3 [(metadata) = { exit_code: 2 }];
   386      RPC_LOG_FAILURE = 4 [(metadata) = { exit_code: 2 }];
   387      EXEC_CHANNEL_INIT_FAILURE = 5 [(metadata) = { exit_code: 2 }];
   388      CACHE_CHANNEL_INIT_FAILURE = 6 [(metadata) = { exit_code: 2 }];
   389      DOWNLOADER_CHANNEL_INIT_FAILURE = 7 [(metadata) = { exit_code: 2 }];
   390      LOG_DIR_CLEANUP_FAILURE = 8 [(metadata) = { exit_code: 36 }];
   391      CLIENT_SERVER_INCOMPATIBLE = 9 [(metadata) = { exit_code: 34 }];
   392      DOWNLOADED_INPUTS_DELETION_FAILURE = 10 [(metadata) = { exit_code: 34 }];
   393      REMOTE_DOWNLOAD_OUTPUTS_MINIMAL_WITHOUT_INMEMORY_DOTD = 11
   394          [(metadata) = { exit_code: 2 }];
   395      REMOTE_DOWNLOAD_OUTPUTS_MINIMAL_WITHOUT_INMEMORY_JDEPS = 12
   396          [(metadata) = { exit_code: 2 }];
   397      INCOMPLETE_OUTPUT_DOWNLOAD_CLEANUP_FAILURE = 13
   398          [(metadata) = { exit_code: 36 }];
   399      REMOTE_DEFAULT_PLATFORM_PROPERTIES_PARSE_FAILURE = 14
   400          [(metadata) = { exit_code: 1 }];
   401      ILLEGAL_OUTPUT = 15 [(metadata) = { exit_code: 1 }];
   402      INVALID_EXEC_AND_PLATFORM_PROPERTIES = 16 [(metadata) = { exit_code: 1 }];
   403    }
   404  
   405    Code code = 1;
   406  }
   407  
   408  message Execution {
   409    enum Code {
   410      EXECUTION_UNKNOWN = 0 [(metadata) = { exit_code: 37 }];
   411      EXECUTION_LOG_INITIALIZATION_FAILURE = 1 [(metadata) = { exit_code: 2 }];
   412      EXECUTION_LOG_WRITE_FAILURE = 2 [(metadata) = { exit_code: 36 }];
   413      EXECROOT_CREATION_FAILURE = 3 [(metadata) = { exit_code: 36 }];
   414      TEMP_ACTION_OUTPUT_DIRECTORY_DELETION_FAILURE = 4
   415          [(metadata) = { exit_code: 36 }];
   416      TEMP_ACTION_OUTPUT_DIRECTORY_CREATION_FAILURE = 5
   417          [(metadata) = { exit_code: 36 }];
   418      PERSISTENT_ACTION_OUTPUT_DIRECTORY_CREATION_FAILURE = 6
   419          [(metadata) = { exit_code: 36 }];
   420      LOCAL_OUTPUT_DIRECTORY_SYMLINK_FAILURE = 7 [(metadata) = { exit_code: 36 }];
   421      reserved 8;  // was ACTION_INPUT_FILES_MISSING, now mostly
   422                   // SOURCE_INPUT_MISSING
   423      LOCAL_TEMPLATE_EXPANSION_FAILURE = 9 [(metadata) = { exit_code: 36 }];
   424      INPUT_DIRECTORY_CHECK_IO_EXCEPTION = 10 [(metadata) = { exit_code: 36 }];
   425      EXTRA_ACTION_OUTPUT_CREATION_FAILURE = 11 [(metadata) = { exit_code: 36 }];
   426      TEST_RUNNER_IO_EXCEPTION = 12 [(metadata) = { exit_code: 36 }];
   427      FILE_WRITE_IO_EXCEPTION = 13 [(metadata) = { exit_code: 36 }];
   428      TEST_OUT_ERR_IO_EXCEPTION = 14 [(metadata) = { exit_code: 36 }];
   429      SYMLINK_TREE_MANIFEST_COPY_IO_EXCEPTION = 15
   430          [(metadata) = { exit_code: 36 }];
   431      SYMLINK_TREE_MANIFEST_LINK_IO_EXCEPTION = 16
   432          [(metadata) = { exit_code: 36 }];
   433      SYMLINK_TREE_CREATION_IO_EXCEPTION = 17 [(metadata) = { exit_code: 36 }];
   434      SYMLINK_TREE_CREATION_COMMAND_EXCEPTION = 18
   435          [(metadata) = { exit_code: 36 }];
   436      ACTION_INPUT_READ_IO_EXCEPTION = 19 [(metadata) = { exit_code: 36 }];
   437      ACTION_NOT_UP_TO_DATE = 20 [(metadata) = { exit_code: 1 }];
   438      PSEUDO_ACTION_EXECUTION_PROHIBITED = 21 [(metadata) = { exit_code: 1 }];
   439      DISCOVERED_INPUT_DOES_NOT_EXIST = 22 [(metadata) = { exit_code: 36 }];
   440      ACTION_OUTPUTS_DELETION_FAILURE = 23 [(metadata) = { exit_code: 1 }];
   441      ACTION_OUTPUTS_NOT_CREATED = 24 [(metadata) = { exit_code: 1 }];
   442      ACTION_FINALIZATION_FAILURE = 25 [(metadata) = { exit_code: 1 }];
   443      ACTION_INPUT_LOST = 26 [(metadata) = { exit_code: 1 }];
   444      FILESYSTEM_CONTEXT_UPDATE_FAILURE = 27 [(metadata) = { exit_code: 1 }];
   445      ACTION_OUTPUT_CLOSE_FAILURE = 28 [(metadata) = { exit_code: 1 }];
   446      INPUT_DISCOVERY_IO_EXCEPTION = 29 [(metadata) = { exit_code: 1 }];
   447      TREE_ARTIFACT_DIRECTORY_CREATION_FAILURE = 30
   448          [(metadata) = { exit_code: 1 }];
   449      ACTION_OUTPUT_DIRECTORY_CREATION_FAILURE = 31
   450          [(metadata) = { exit_code: 1 }];
   451      ACTION_FS_OUTPUT_DIRECTORY_CREATION_FAILURE = 32
   452          [(metadata) = { exit_code: 1 }];
   453      ACTION_FS_OUT_ERR_DIRECTORY_CREATION_FAILURE = 33
   454          [(metadata) = { exit_code: 1 }];
   455      NON_ACTION_EXECUTION_FAILURE = 34 [(metadata) = { exit_code: 1 }];
   456      CYCLE = 35 [(metadata) = { exit_code: 1 }];
   457      SOURCE_INPUT_MISSING = 36 [(metadata) = { exit_code: 1 }];
   458      UNEXPECTED_EXCEPTION = 37 [(metadata) = { exit_code: 1 }];
   459      reserved 38;
   460      SOURCE_INPUT_IO_EXCEPTION = 39 [(metadata) = { exit_code: 1 }];
   461    }
   462  
   463    Code code = 1;
   464  }
   465  
   466  // Failure details about Bazel's WORKSPACE features.
   467  message Workspaces {
   468    enum Code {
   469      WORKSPACES_UNKNOWN = 0 [(metadata) = { exit_code: 37 }];
   470      WORKSPACES_LOG_INITIALIZATION_FAILURE = 1 [(metadata) = { exit_code: 2 }];
   471      WORKSPACES_LOG_WRITE_FAILURE = 2 [(metadata) = { exit_code: 36 }];
   472  
   473      // See `managed_directories` in
   474      // https://bazel.build/rules/lib/globals#workspace.
   475      ILLEGAL_WORKSPACE_FILE_SYMLINK_WITH_MANAGED_DIRECTORIES = 3
   476          [(metadata) = { exit_code: 1 }];
   477      WORKSPACE_FILE_READ_FAILURE_WITH_MANAGED_DIRECTORIES = 4
   478          [(metadata) = { exit_code: 1 }];
   479    }
   480  
   481    Code code = 1;
   482  }
   483  
   484  message CrashOptions {
   485    enum Code {
   486      CRASH_OPTIONS_UNKNOWN = 0 [(metadata) = { exit_code: 37 }];
   487      reserved 1; // For internal use
   488    }
   489  
   490    Code code = 1;
   491  }
   492  
   493  message Filesystem {
   494    enum Code {
   495      FILESYSTEM_UNKNOWN = 0 [(metadata) = { exit_code: 37 }];
   496      reserved 1;
   497      reserved 2;
   498      EMBEDDED_BINARIES_ENUMERATION_FAILURE = 3 [(metadata) = { exit_code: 36 }];
   499      SERVER_PID_TXT_FILE_READ_FAILURE = 4 [(metadata) = { exit_code: 36 }];
   500      SERVER_FILE_WRITE_FAILURE = 5 [(metadata) = { exit_code: 36 }];
   501      DEFAULT_DIGEST_HASH_FUNCTION_INVALID_VALUE = 6
   502          [(metadata) = { exit_code: 2 }];
   503  
   504      reserved 7; // For internal use
   505    }
   506  
   507    Code code = 1;
   508  }
   509  
   510  message ExecutionOptions {
   511    // All numerical exit code associations correspond to pre-existing Bazel
   512    // behavior. These associations are suspicious:
   513    // - REQUESTED_STRATEGY_INCOMPATIBLE_WITH_SANDBOXING (instead: 2?)
   514    // - DEPRECATED_LOCAL_RESOURCES_USED (instead: 2?)
   515    // TODO(b/138456686): Revise these after the (intentionally non-breaking)
   516    //  initial rollout of FailureDetail-based encoding.
   517    enum Code {
   518      EXECUTION_OPTIONS_UNKNOWN = 0 [(metadata) = { exit_code: 37 }];
   519      INVALID_STRATEGY = 3 [(metadata) = { exit_code: 2 }];
   520      REQUESTED_STRATEGY_INCOMPATIBLE_WITH_SANDBOXING = 4
   521          [(metadata) = { exit_code: 36 }];
   522      DEPRECATED_LOCAL_RESOURCES_USED = 5 [(metadata) = { exit_code: 36 }];
   523      INVALID_CYCLIC_DYNAMIC_STRATEGY = 6 [(metadata) = { exit_code: 36 }];
   524      RESTRICTION_UNMATCHED_TO_ACTION_CONTEXT = 7 [(metadata) = { exit_code: 2 }];
   525      REMOTE_FALLBACK_STRATEGY_NOT_ABSTRACT_SPAWN = 8
   526          [(metadata) = { exit_code: 2 }];
   527      STRATEGY_NOT_FOUND = 9 [(metadata) = { exit_code: 2 }];
   528      DYNAMIC_STRATEGY_NOT_SANDBOXED = 10 [(metadata) = { exit_code: 2 }];
   529  
   530      reserved 1, 2; // For internal use
   531    }
   532  
   533    Code code = 1;
   534  }
   535  
   536  message Command {
   537    enum Code {
   538      // The name "COMMAND_UNKNOWN" might reasonably be interpreted as "command
   539      // not found". The enum's default value should represent a lack of knowledge
   540      // about the failure instead.
   541      COMMAND_FAILURE_UNKNOWN = 0 [(metadata) = { exit_code: 37 }];
   542      COMMAND_NOT_FOUND = 1 [(metadata) = { exit_code: 2 }];
   543      ANOTHER_COMMAND_RUNNING = 2 [(metadata) = { exit_code: 9 }];
   544      PREVIOUSLY_SHUTDOWN = 3 [(metadata) = { exit_code: 36 }];
   545      STARLARK_CPU_PROFILE_FILE_INITIALIZATION_FAILURE = 4
   546          [(metadata) = { exit_code: 36 }];
   547      STARLARK_CPU_PROFILING_INITIALIZATION_FAILURE = 5
   548          [(metadata) = { exit_code: 36 }];
   549      STARLARK_CPU_PROFILE_FILE_WRITE_FAILURE = 6
   550          [(metadata) = { exit_code: 36 }];
   551      INVOCATION_POLICY_PARSE_FAILURE = 7 [(metadata) = { exit_code: 2 }];
   552      INVOCATION_POLICY_INVALID = 8 [(metadata) = { exit_code: 2 }];
   553      OPTIONS_PARSE_FAILURE = 9 [(metadata) = { exit_code: 2 }];
   554      STARLARK_OPTIONS_PARSE_FAILURE = 10 [(metadata) = { exit_code: 2 }];
   555      ARGUMENTS_NOT_RECOGNIZED = 11 [(metadata) = { exit_code: 2 }];
   556      NOT_IN_WORKSPACE = 12 [(metadata) = { exit_code: 2 }];
   557      SPACES_IN_WORKSPACE_PATH = 13 [(metadata) = { exit_code: 36 }];
   558      IN_OUTPUT_DIRECTORY = 14 [(metadata) = { exit_code: 2 }];
   559    }
   560  
   561    Code code = 1;
   562  }
   563  
   564  message GrpcServer {
   565    enum Code {
   566      GRPC_SERVER_UNKNOWN = 0 [(metadata) = { exit_code: 37 }];
   567      GRPC_SERVER_NOT_COMPILED_IN = 1 [(metadata) = { exit_code: 37 }];
   568      SERVER_BIND_FAILURE = 2 [(metadata) = { exit_code: 1 }];
   569      BAD_COOKIE = 3 [(metadata) = { exit_code: 36 }];
   570      NO_CLIENT_DESCRIPTION = 4 [(metadata) = { exit_code: 36 }];
   571      reserved 5; // For internal use
   572    }
   573  
   574    Code code = 1;
   575  }
   576  
   577  message CanonicalizeFlags {
   578    enum Code {
   579      CANONICALIZE_FLAGS_UNKNOWN = 0 [(metadata) = { exit_code: 37 }];
   580      FOR_COMMAND_INVALID = 1 [(metadata) = { exit_code: 2 }];
   581    }
   582  
   583    Code code = 1;
   584  }
   585  
   586  // Failure modes described by this category pertain to the Bazel invocation
   587  // configuration consumed by Bazel's analysis phase. This category is not
   588  // intended as a grab-bag for all Bazel flag value constraint violations, which
   589  // instead generally belong in the category for the subsystem whose flag values
   590  // participate in the constraint.
   591  message BuildConfiguration {
   592    enum Code {
   593      BUILD_CONFIGURATION_UNKNOWN = 0 [(metadata) = { exit_code: 37 }];
   594      PLATFORM_MAPPING_EVALUATION_FAILURE = 1 [(metadata) = { exit_code: 2 }];
   595      PLATFORM_MAPPINGS_FILE_IS_DIRECTORY = 2 [(metadata) = { exit_code: 1 }];
   596      PLATFORM_MAPPINGS_FILE_NOT_FOUND = 3 [(metadata) = { exit_code: 1 }];
   597      TOP_LEVEL_CONFIGURATION_CREATION_FAILURE = 4
   598          [(metadata) = { exit_code: 1 }];
   599      INVALID_CONFIGURATION = 5 [(metadata) = { exit_code: 2 }];
   600      INVALID_BUILD_OPTIONS = 6 [(metadata) = { exit_code: 2 }];
   601      MULTI_CPU_PREREQ_UNMET = 7 [(metadata) = { exit_code: 2 }];
   602      HEURISTIC_INSTRUMENTATION_FILTER_INVALID = 8
   603          [(metadata) = { exit_code: 2 }];
   604      CYCLE = 9 [(metadata) = { exit_code: 2 }];
   605      CONFLICTING_CONFIGURATIONS = 10 [(metadata) = { exit_code: 2 }];
   606      // This can come from either an invalid user-specified option or a
   607      // configuration transition. There's no sure-fire way to distinguish the two
   608      // possibilities in Bazel, so we go with the more straightforward
   609      // command-line error exit code 2.
   610      INVALID_OUTPUT_DIRECTORY_MNEMONIC = 11 [(metadata) = { exit_code: 2 }];
   611    }
   612  
   613    Code code = 1;
   614  }
   615  
   616  message InfoCommand {
   617    // The distinction between a failure to write a single info item and a failure
   618    // to write them all seems sketchy. Why do they have different exit codes?
   619    // This reflects current Bazel behavior, but deserves more thought.
   620    enum Code {
   621      INFO_COMMAND_UNKNOWN = 0 [(metadata) = { exit_code: 37 }];
   622      TOO_MANY_KEYS = 1 [(metadata) = { exit_code: 2 }];
   623      KEY_NOT_RECOGNIZED = 2 [(metadata) = { exit_code: 2 }];
   624      INFO_BLOCK_WRITE_FAILURE = 3 [(metadata) = { exit_code: 7 }];
   625      ALL_INFO_WRITE_FAILURE = 4 [(metadata) = { exit_code: 36 }];
   626    }
   627  
   628    Code code = 1;
   629  }
   630  
   631  message MemoryOptions {
   632    enum Code {
   633      MEMORY_OPTIONS_UNKNOWN = 0 [(metadata) = { exit_code: 37 }];
   634      // Deprecated: validation is now implemented by the option converter.
   635      DEPRECATED_EXPERIMENTAL_OOM_MORE_EAGERLY_THRESHOLD_INVALID_VALUE = 1
   636          [(metadata) = { exit_code: 2 }, deprecated = true];
   637      // Deprecated: no tenured collectors found is now a crash on startup.
   638      DEPRECATED_EXPERIMENTAL_OOM_MORE_EAGERLY_NO_TENURED_COLLECTORS_FOUND = 2
   639          [(metadata) = { exit_code: 2 }, deprecated = true];
   640    }
   641  
   642    Code code = 1;
   643  }
   644  
   645  message Query {
   646    enum Code {
   647      QUERY_UNKNOWN = 0 [(metadata) = { exit_code: 37 }];
   648      QUERY_FILE_WITH_COMMAND_LINE_EXPRESSION = 1 [(metadata) = { exit_code: 2 }];
   649      QUERY_FILE_READ_FAILURE = 2 [(metadata) = { exit_code: 2 }];
   650      COMMAND_LINE_EXPRESSION_MISSING = 3 [(metadata) = { exit_code: 2 }];
   651      OUTPUT_FORMAT_INVALID = 4 [(metadata) = { exit_code: 2 }];
   652      GRAPHLESS_PREREQ_UNMET = 5 [(metadata) = { exit_code: 2 }];
   653      QUERY_OUTPUT_WRITE_FAILURE = 6 [(metadata) = { exit_code: 36 }];
   654      QUERY_STDOUT_FLUSH_FAILURE = 13 [(metadata) = { exit_code: 36 }];
   655      ANALYSIS_QUERY_PREREQ_UNMET = 14 [(metadata) = { exit_code: 2 }];
   656      QUERY_RESULTS_FLUSH_FAILURE = 15 [(metadata) = { exit_code: 36 }];
   657      // Deprecated - folded into SYNTAX_ERROR.
   658      DEPRECATED_UNCLOSED_QUOTATION_EXPRESSION_ERROR = 16
   659          [(metadata) = { exit_code: 2 }];
   660      VARIABLE_NAME_INVALID = 17 [(metadata) = { exit_code: 7 }];
   661      VARIABLE_UNDEFINED = 18 [(metadata) = { exit_code: 7 }];
   662      BUILDFILES_AND_LOADFILES_CANNOT_USE_OUTPUT_LOCATION_ERROR = 19
   663          [(metadata) = { exit_code: 2 }];
   664      BUILD_FILE_ERROR = 20 [(metadata) = { exit_code: 7 }];
   665      CYCLE = 21 [(metadata) = { exit_code: 7 }];
   666      UNIQUE_SKYKEY_THRESHOLD_EXCEEDED = 22 [(metadata) = { exit_code: 7 }];
   667      TARGET_NOT_IN_UNIVERSE_SCOPE = 23 [(metadata) = { exit_code: 2 }];
   668      INVALID_FULL_UNIVERSE_EXPRESSION = 24 [(metadata) = { exit_code: 7 }];
   669      UNIVERSE_SCOPE_LIMIT_EXCEEDED = 25 [(metadata) = { exit_code: 7 }];
   670      INVALIDATION_LIMIT_EXCEEDED = 26 [(metadata) = { exit_code: 7 }];
   671      OUTPUT_FORMAT_PREREQ_UNMET = 27 [(metadata) = { exit_code: 2 }];
   672      ARGUMENTS_MISSING = 28 [(metadata) = { exit_code: 7 }];
   673      RBUILDFILES_FUNCTION_REQUIRES_SKYQUERY = 29 [(metadata) = { exit_code: 7 }];
   674      FULL_TARGETS_NOT_SUPPORTED = 30 [(metadata) = { exit_code: 7 }];
   675      // Deprecated - folded into SYNTAX_ERROR.
   676      DEPRECATED_UNEXPECTED_TOKEN_ERROR = 31 [(metadata) = { exit_code: 2 }];
   677      // Deprecated - folded into SYNTAX_ERROR.
   678      DEPRECATED_INTEGER_LITERAL_MISSING = 32 [(metadata) = { exit_code: 2 }];
   679      // Deprecated - folded into SYNTAX_ERROR.
   680      DEPRECATED_INVALID_STARTING_CHARACTER_ERROR = 33
   681          [(metadata) = { exit_code: 2 }];
   682      // Deprecated - folded into SYNTAX_ERROR.
   683      DEPRECATED_PREMATURE_END_OF_INPUT_ERROR = 34
   684          [(metadata) = { exit_code: 2 }];
   685      // Indicates the user specified invalid query syntax.
   686      SYNTAX_ERROR = 35 [(metadata) = { exit_code: 2 }];
   687      OUTPUT_FORMATTER_IO_EXCEPTION = 36 [(metadata) = { exit_code: 36 }];
   688      SKYQUERY_TRANSITIVE_TARGET_ERROR = 37 [(metadata) = { exit_code: 7 }];
   689      SKYQUERY_TARGET_EXCEPTION = 38 [(metadata) = { exit_code: 7 }];
   690      INVALID_LABEL_IN_TEST_SUITE = 39 [(metadata) = { exit_code: 7 }];
   691      // Indicates any usage of flags that must not be combined.
   692      ILLEGAL_FLAG_COMBINATION = 40 [(metadata) = { exit_code: 2 }];
   693      // Indicates a non-detailed exception that halted a query. This is a
   694      // deficiency in Blaze/Bazel and code should be changed to attach a detailed
   695      // exit code to this failure mode.
   696      NON_DETAILED_ERROR = 41 [(metadata) = { exit_code: 1 }];
   697  
   698      reserved 7 to 12; // For internal use
   699    }
   700  
   701    Code code = 1;
   702  }
   703  
   704  message LocalExecution {
   705    enum Code {
   706      LOCAL_EXECUTION_UNKNOWN = 0 [(metadata) = { exit_code: 37 }];
   707      LOCKFREE_OUTPUT_PREREQ_UNMET = 1 [(metadata) = { exit_code: 2 }];
   708    }
   709  
   710    Code code = 1;
   711  }
   712  
   713  message ActionCache {
   714    enum Code {
   715      ACTION_CACHE_UNKNOWN = 0 [(metadata) = { exit_code: 37 }];
   716      INITIALIZATION_FAILURE = 1 [(metadata) = { exit_code: 36 }];
   717    }
   718  
   719    Code code = 1;
   720  }
   721  
   722  message FetchCommand {
   723    enum Code {
   724      FETCH_COMMAND_UNKNOWN = 0 [(metadata) = { exit_code: 37 }];
   725      EXPRESSION_MISSING = 1 [(metadata) = { exit_code: 2 }];
   726      OPTIONS_INVALID = 2 [(metadata) = { exit_code: 2 }];
   727      QUERY_PARSE_ERROR = 3 [(metadata) = { exit_code: 2 }];
   728      QUERY_EVALUATION_ERROR = 4 [(metadata) = { exit_code: 2 }];
   729    }
   730  
   731    Code code = 1;
   732  }
   733  
   734  message SyncCommand {
   735    enum Code {
   736      SYNC_COMMAND_UNKNOWN = 0 [(metadata) = { exit_code: 37 }];
   737      PACKAGE_LOOKUP_ERROR = 1 [(metadata) = { exit_code: 7 }];
   738      WORKSPACE_EVALUATION_ERROR = 2 [(metadata) = { exit_code: 7 }];
   739      REPOSITORY_FETCH_ERRORS = 3 [(metadata) = { exit_code: 7 }];
   740      REPOSITORY_NAME_INVALID = 4 [(metadata) = { exit_code: 7 }];
   741    }
   742  
   743    Code code = 1;
   744  }
   745  
   746  message Sandbox {
   747    enum Code {
   748      SANDBOX_FAILURE_UNKNOWN = 0 [(metadata) = { exit_code: 37 }];
   749      INITIALIZATION_FAILURE = 1 [(metadata) = { exit_code: 36 }];
   750      EXECUTION_IO_EXCEPTION = 2 [(metadata) = { exit_code: 36 }];
   751      DOCKER_COMMAND_FAILURE = 3 [(metadata) = { exit_code: 1 }];
   752      NO_DOCKER_IMAGE = 4 [(metadata) = { exit_code: 1 }];
   753      DOCKER_IMAGE_PREPARATION_FAILURE = 5 [(metadata) = { exit_code: 1 }];
   754      BIND_MOUNT_ANALYSIS_FAILURE = 6 [(metadata) = { exit_code: 1 }];
   755      MOUNT_SOURCE_DOES_NOT_EXIST = 7 [(metadata) = { exit_code: 1 }];
   756      MOUNT_SOURCE_TARGET_TYPE_MISMATCH = 8 [(metadata) = { exit_code: 1 }];
   757      MOUNT_TARGET_DOES_NOT_EXIST = 9 [(metadata) = { exit_code: 1 }];
   758      SUBPROCESS_START_FAILED = 10 [(metadata) = { exit_code: 36 }];
   759      FORBIDDEN_INPUT = 11 [(metadata) = { exit_code: 1 }];
   760    }
   761  
   762    Code code = 1;
   763  }
   764  
   765  message IncludeScanning {
   766    enum Code {
   767      INCLUDE_SCANNING_UNKNOWN = 0 [(metadata) = { exit_code: 37 }];
   768      INITIALIZE_INCLUDE_HINTS_ERROR = 1 [(metadata) = { exit_code: 36 }];
   769      SCANNING_IO_EXCEPTION = 2 [(metadata) = { exit_code: 36 }];
   770      INCLUDE_HINTS_FILE_NOT_IN_PACKAGE = 3 [(metadata) = { exit_code: 36 }];
   771      INCLUDE_HINTS_READ_FAILURE = 4 [(metadata) = { exit_code: 36 }];
   772      ILLEGAL_ABSOLUTE_PATH = 5 [(metadata) = { exit_code: 1 }];
   773      // TODO(b/166268889): this code should be deprecated in favor of more finely
   774      //  resolved loading-phase codes.
   775      PACKAGE_LOAD_FAILURE = 6 [(metadata) = { exit_code: 1 }];
   776      USER_PACKAGE_LOAD_FAILURE = 7 [(metadata) = { exit_code: 1 }];
   777      SYSTEM_PACKAGE_LOAD_FAILURE = 8 [(metadata) = { exit_code: 36 }];
   778      UNDIFFERENTIATED_PACKAGE_LOAD_FAILURE = 9 [(metadata) = { exit_code: 1 }];
   779    }
   780  
   781    Code code = 1;
   782    PackageLoading.Code package_loading_code = 2;
   783  }
   784  
   785  message TestCommand {
   786    enum Code {
   787      TEST_COMMAND_UNKNOWN = 0 [(metadata) = { exit_code: 37 }];
   788      NO_TEST_TARGETS = 1 [(metadata) = { exit_code: 4 }];
   789      TEST_WITH_NOANALYZE = 2 [(metadata) = { exit_code: 1 }];
   790      TESTS_FAILED = 3 [(metadata) = { exit_code: 3 }];
   791    }
   792  
   793    Code code = 1;
   794  }
   795  
   796  message ActionQuery {
   797    // All numerical exit code associations correspond to pre-existing Bazel
   798    // behavior. These associations are suspicious:
   799    // - COMMAND_LINE_EXPANSION_FAILURE: this is associated with 2, the numerical
   800    //     exit code for "bad Bazel command line", but is generated when an
   801    //     action's command line fails to expand, which sounds similar but is
   802    //     completely different.
   803    // - OUTPUT_FAILURE: this is associated with 6, an undocumented exit code.
   804    // - INVALID_AQUERY_EXPRESSION: this is associate with 1, which is not
   805    //    documented for (a)query.
   806    // TODO(b/138456686): Revise these after the (intentionally non-breaking)
   807    //  initial rollout of FailureDetail-based encoding.
   808    enum Code {
   809      ACTION_QUERY_UNKNOWN = 0 [(metadata) = { exit_code: 37 }];
   810      COMMAND_LINE_EXPANSION_FAILURE = 1 [(metadata) = { exit_code: 2 }];
   811      OUTPUT_FAILURE = 2 [(metadata) = { exit_code: 6 }];
   812      COMMAND_LINE_EXPRESSION_MISSING = 3 [(metadata) = { exit_code: 2 }];
   813      EXPRESSION_PARSE_FAILURE = 4 [(metadata) = { exit_code: 2 }];
   814      SKYFRAME_STATE_WITH_COMMAND_LINE_EXPRESSION = 5
   815          [(metadata) = { exit_code: 2 }];
   816      INVALID_AQUERY_EXPRESSION = 6 [(metadata) = { exit_code: 1 }];
   817      SKYFRAME_STATE_PREREQ_UNMET = 7 [(metadata) = { exit_code: 2 }];
   818      AQUERY_OUTPUT_TOO_BIG = 8 [(metadata) = { exit_code: 7 }];
   819      ILLEGAL_PATTERN_SYNTAX = 9 [(metadata) = { exit_code: 2 }];
   820      INCORRECT_ARGUMENTS = 10 [(metadata) = { exit_code: 2 }];
   821      TOP_LEVEL_TARGETS_WITH_SKYFRAME_STATE_NOT_SUPPORTED = 11
   822          [(metadata) = { exit_code: 2 }];
   823      SKYFRAME_STATE_AFTER_EXECUTION = 12 [(metadata) = { exit_code: 1 }];
   824      LABELS_FUNCTION_NOT_SUPPORTED = 13 [(metadata) = { exit_code: 2 }];
   825      TEMPLATE_EXPANSION_FAILURE = 14 [(metadata) = { exit_code: 2 }];
   826    }
   827  
   828    Code code = 1;
   829  }
   830  
   831  message TargetPatterns {
   832    enum Code {
   833      TARGET_PATTERNS_UNKNOWN = 0 [(metadata) = { exit_code: 37 }];
   834      TARGET_PATTERN_FILE_WITH_COMMAND_LINE_PATTERN = 1
   835          [(metadata) = { exit_code: 2 }];
   836      TARGET_PATTERN_FILE_READ_FAILURE = 2 [(metadata) = { exit_code: 2 }];
   837      TARGET_PATTERN_PARSE_FAILURE = 3 [(metadata) = { exit_code: 1 }];
   838      PACKAGE_NOT_FOUND = 4 [(metadata) = { exit_code: 1 }];
   839      TARGET_FORMAT_INVALID = 5 [(metadata) = { exit_code: 1 }];
   840      ABSOLUTE_TARGET_PATTERN_INVALID = 6 [(metadata) = { exit_code: 1 }];
   841      CANNOT_DETERMINE_TARGET_FROM_FILENAME = 7 [(metadata) = { exit_code: 1 }];
   842      LABEL_SYNTAX_ERROR = 8 [(metadata) = { exit_code: 1 }];
   843      TARGET_CANNOT_BE_EMPTY_STRING = 9 [(metadata) = { exit_code: 1 }];
   844      PACKAGE_PART_CANNOT_END_IN_SLASH = 10 [(metadata) = { exit_code: 1 }];
   845      CYCLE = 11 [(metadata) = { exit_code: 1 }];
   846      CANNOT_PRELOAD_TARGET = 12 [(metadata) = { exit_code: 1 }];
   847      TARGETS_MISSING = 13 [(metadata) = { exit_code: 1 }];
   848      RECURSIVE_TARGET_PATTERNS_NOT_ALLOWED = 14 [(metadata) = { exit_code: 1 }];
   849      UP_LEVEL_REFERENCES_NOT_ALLOWED = 15 [(metadata) = { exit_code: 1 }];
   850      NEGATIVE_TARGET_PATTERN_NOT_ALLOWED = 16 [(metadata) = { exit_code: 1 }];
   851      TARGET_MUST_BE_A_FILE = 17 [(metadata) = { exit_code: 1 }];
   852      DEPENDENCY_NOT_FOUND = 18 [(metadata) = { exit_code: 1 }];
   853      PACKAGE_NAME_INVALID = 19 [(metadata) = { exit_code: 1 }];
   854    }
   855  
   856    Code code = 1;
   857  }
   858  
   859  message CleanCommand {
   860    enum Code {
   861      CLEAN_COMMAND_UNKNOWN = 0 [(metadata) = { exit_code: 37 }];
   862      OUTPUT_SERVICE_CLEAN_FAILURE = 1 [(metadata) = { exit_code: 6 }];
   863      ACTION_CACHE_CLEAN_FAILURE = 2 [(metadata) = { exit_code: 36 }];
   864      OUT_ERR_CLOSE_FAILURE = 3 [(metadata) = { exit_code: 36 }];
   865      OUTPUT_BASE_DELETE_FAILURE = 4 [(metadata) = { exit_code: 36 }];
   866      OUTPUT_BASE_TEMP_MOVE_FAILURE = 5 [(metadata) = { exit_code: 36 }];
   867      ASYNC_OUTPUT_BASE_DELETE_FAILURE = 6 [(metadata) = { exit_code: 6 }];
   868      EXECROOT_DELETE_FAILURE = 7 [(metadata) = { exit_code: 36 }];
   869      EXECROOT_TEMP_MOVE_FAILURE = 8 [(metadata) = { exit_code: 36 }];
   870      ASYNC_EXECROOT_DELETE_FAILURE = 9 [(metadata) = { exit_code: 6 }];
   871      ARGUMENTS_NOT_RECOGNIZED = 10 [(metadata) = { exit_code: 2 }];
   872    }
   873  
   874    Code code = 1;
   875  }
   876  
   877  message ConfigCommand {
   878    enum Code {
   879      CONFIG_COMMAND_UNKNOWN = 0 [(metadata) = { exit_code: 37 }];
   880      TOO_MANY_CONFIG_IDS = 1 [(metadata) = { exit_code: 2 }];
   881      CONFIGURATION_NOT_FOUND = 2 [(metadata) = { exit_code: 2 }];
   882    }
   883  
   884    Code code = 1;
   885  }
   886  
   887  message ConfigurableQuery {
   888    enum Code {
   889      CONFIGURABLE_QUERY_UNKNOWN = 0 [(metadata) = { exit_code: 37 }];
   890      COMMAND_LINE_EXPRESSION_MISSING = 1 [(metadata) = { exit_code: 2 }];
   891      EXPRESSION_PARSE_FAILURE = 2 [(metadata) = { exit_code: 2 }];
   892      FILTERS_NOT_SUPPORTED = 3 [(metadata) = { exit_code: 2 }];
   893      BUILDFILES_FUNCTION_NOT_SUPPORTED = 4 [(metadata) = { exit_code: 2 }];
   894      SIBLINGS_FUNCTION_NOT_SUPPORTED = 5 [(metadata) = { exit_code: 2 }];
   895      VISIBLE_FUNCTION_NOT_SUPPORTED = 6 [(metadata) = { exit_code: 2 }];
   896      ATTRIBUTE_MISSING = 7 [(metadata) = { exit_code: 2 }];
   897      INCORRECT_CONFIG_ARGUMENT_ERROR = 8 [(metadata) = { exit_code: 2 }];
   898      TARGET_MISSING = 9 [(metadata) = { exit_code: 2 }];
   899      STARLARK_SYNTAX_ERROR = 10 [(metadata) = { exit_code: 2 }];
   900      STARLARK_EVAL_ERROR = 11 [(metadata) = { exit_code: 2 }];
   901      // Indicates failure to correctly define a format function
   902      FORMAT_FUNCTION_ERROR = 12 [(metadata) = { exit_code: 2 }];
   903    }
   904  
   905    Code code = 1;
   906  }
   907  
   908  message DumpCommand {
   909    enum Code {
   910      DUMP_COMMAND_UNKNOWN = 0 [(metadata) = { exit_code: 37 }];
   911      NO_OUTPUT_SPECIFIED = 1 [(metadata) = { exit_code: 7 }];
   912      ACTION_CACHE_DUMP_FAILED = 2 [(metadata) = { exit_code: 7 }];
   913      COMMAND_LINE_EXPANSION_FAILURE = 3 [(metadata) = { exit_code: 7 }];
   914      ACTION_GRAPH_DUMP_FAILED = 4 [(metadata) = { exit_code: 7 }];
   915      STARLARK_HEAP_DUMP_FAILED = 5 [(metadata) = { exit_code: 8 }];
   916       reserved 6; // For internal use
   917    }
   918  
   919    Code code = 1;
   920  }
   921  
   922  message HelpCommand {
   923    enum Code {
   924      HELP_COMMAND_UNKNOWN = 0 [(metadata) = { exit_code: 37 }];
   925      MISSING_ARGUMENT = 1 [(metadata) = { exit_code: 2 }];
   926      COMMAND_NOT_FOUND = 2 [(metadata) = { exit_code: 2 }];
   927    }
   928  
   929    Code code = 1;
   930  }
   931  
   932  message MobileInstall {
   933    enum Code {
   934      MOBILE_INSTALL_UNKNOWN = 0 [(metadata) = { exit_code: 37 }];
   935      CLASSIC_UNSUPPORTED = 1 [(metadata) = { exit_code: 2 }];
   936      NO_TARGET_SPECIFIED = 2 [(metadata) = { exit_code: 2 }];
   937      MULTIPLE_TARGETS_SPECIFIED = 3 [(metadata) = { exit_code: 2 }];
   938      TARGET_TYPE_INVALID = 4 [(metadata) = { exit_code: 6 }];
   939      NON_ZERO_EXIT = 5 [(metadata) = { exit_code: 6 }];
   940      ERROR_RUNNING_PROGRAM = 6 [(metadata) = { exit_code: 6 }];
   941    }
   942  
   943    Code code = 1;
   944  }
   945  
   946  message ProfileCommand {
   947    enum Code {
   948      PROFILE_COMMAND_UNKNOWN = 0 [(metadata) = { exit_code: 37 }];
   949      OLD_BINARY_FORMAT_UNSUPPORTED = 1 [(metadata) = { exit_code: 1 }];
   950      FILE_READ_FAILURE = 2 [(metadata) = { exit_code: 1 }];
   951    }
   952  
   953    Code code = 1;
   954  }
   955  
   956  message RunCommand {
   957    enum Code {
   958      RUN_COMMAND_UNKNOWN = 0 [(metadata) = { exit_code: 37 }];
   959      NO_TARGET_SPECIFIED = 1 [(metadata) = { exit_code: 2 }];
   960      TOO_MANY_TARGETS_SPECIFIED = 2 [(metadata) = { exit_code: 2 }];
   961      TARGET_NOT_EXECUTABLE = 3 [(metadata) = { exit_code: 2 }];
   962      TARGET_BUILT_BUT_PATH_NOT_EXECUTABLE = 4 [(metadata) = { exit_code: 1 }];
   963      TARGET_BUILT_BUT_PATH_VALIDATION_FAILED = 5
   964          [(metadata) = { exit_code: 36 }];
   965      RUN_UNDER_TARGET_NOT_BUILT = 6 [(metadata) = { exit_code: 2 }];
   966      RUN_PREREQ_UNMET = 7 [(metadata) = { exit_code: 2 }];
   967      TOO_MANY_TEST_SHARDS_OR_RUNS = 8 [(metadata) = { exit_code: 2 }];
   968      TEST_ENVIRONMENT_SETUP_FAILURE = 9 [(metadata) = { exit_code: 36 }];
   969      COMMAND_LINE_EXPANSION_FAILURE = 10 [(metadata) = { exit_code: 36 }];
   970      NO_SHELL_SPECIFIED = 11 [(metadata) = { exit_code: 2 }];
   971      SCRIPT_WRITE_FAILURE = 12 [(metadata) = { exit_code: 6 }];
   972      RUNFILES_DIRECTORIES_CREATION_FAILURE = 13 [(metadata) = { exit_code: 36 }];
   973      RUNFILES_SYMLINKS_CREATION_FAILURE = 14 [(metadata) = { exit_code: 36 }];
   974      TEST_ENVIRONMENT_SETUP_INTERRUPTED = 15 [(metadata) = { exit_code: 8 }];
   975    }
   976  
   977    Code code = 1;
   978  }
   979  
   980  message VersionCommand {
   981    enum Code {
   982      VERSION_COMMAND_UNKNOWN = 0 [(metadata) = { exit_code: 37 }];
   983      NOT_AVAILABLE = 1 [(metadata) = { exit_code: 2 }];
   984    }
   985  
   986    Code code = 1;
   987  }
   988  
   989  message PrintActionCommand {
   990    enum Code {
   991      PRINT_ACTION_COMMAND_UNKNOWN = 0 [(metadata) = { exit_code: 37 }];
   992      TARGET_NOT_FOUND = 1 [(metadata) = { exit_code: 1 }];
   993      COMMAND_LINE_EXPANSION_FAILURE = 2 [(metadata) = { exit_code: 1 }];
   994      TARGET_KIND_UNSUPPORTED = 3 [(metadata) = { exit_code: 1 }];
   995      ACTIONS_NOT_FOUND = 4 [(metadata) = { exit_code: 1 }];
   996    }
   997  
   998    Code code = 1;
   999  }
  1000  
  1001  message WorkspaceStatus {
  1002    enum Code {
  1003      WORKSPACE_STATUS_UNKNOWN = 0 [(metadata) = { exit_code: 37 }];
  1004      NON_ZERO_EXIT = 1 [(metadata) = { exit_code: 1 }];
  1005      ABNORMAL_TERMINATION = 2 [(metadata) = { exit_code: 1 }];
  1006      EXEC_FAILED = 3 [(metadata) = { exit_code: 1 }];
  1007      PARSE_FAILURE = 4 [(metadata) = { exit_code: 36 }];
  1008      VALIDATION_FAILURE = 5 [(metadata) = { exit_code: 1 }];
  1009      CONTENT_UPDATE_IO_EXCEPTION = 6 [(metadata) = { exit_code: 1 }];
  1010      STDERR_IO_EXCEPTION = 7 [(metadata) = { exit_code: 1 }];
  1011    }
  1012  
  1013    Code code = 1;
  1014  }
  1015  
  1016  message JavaCompile {
  1017    enum Code {
  1018      JAVA_COMPILE_UNKNOWN = 0 [(metadata) = { exit_code: 37 }];
  1019      REDUCED_CLASSPATH_FAILURE = 1 [(metadata) = { exit_code: 1 }];
  1020      COMMAND_LINE_EXPANSION_FAILURE = 2 [(metadata) = { exit_code: 1 }];
  1021      JDEPS_READ_IO_EXCEPTION = 3 [(metadata) = { exit_code: 36 }];
  1022      REDUCED_CLASSPATH_FALLBACK_CLEANUP_FAILURE = 4
  1023          [(metadata) = { exit_code: 36 }];
  1024    }
  1025  
  1026    Code code = 1;
  1027  }
  1028  
  1029  message ActionRewinding {
  1030    enum Code {
  1031      ACTION_REWINDING_UNKNOWN = 0 [(metadata) = { exit_code: 37 }];
  1032      LOST_INPUT_TOO_MANY_TIMES = 1 [(metadata) = { exit_code: 1 }];
  1033      LOST_INPUT_IS_SOURCE = 2 [(metadata) = { exit_code: 1 }];
  1034    }
  1035  
  1036    Code code = 1;
  1037  }
  1038  
  1039  message CppCompile {
  1040    enum Code {
  1041      CPP_COMPILE_UNKNOWN = 0 [(metadata) = { exit_code: 37 }];
  1042      FIND_USED_HEADERS_IO_EXCEPTION = 1 [(metadata) = { exit_code: 36 }];
  1043      COPY_OUT_ERR_FAILURE = 2 [(metadata) = { exit_code: 36 }];
  1044      D_FILE_READ_FAILURE = 3 [(metadata) = { exit_code: 36 }];
  1045      COMMAND_GENERATION_FAILURE = 4 [(metadata) = { exit_code: 1 }];
  1046      MODULE_EXPANSION_TIMEOUT = 5 [(metadata) = { exit_code: 1 }];
  1047      INCLUDE_PATH_OUTSIDE_EXEC_ROOT = 6 [(metadata) = { exit_code: 1 }];
  1048      FAKE_COMMAND_GENERATION_FAILURE = 7 [(metadata) = { exit_code: 1 }];
  1049      UNDECLARED_INCLUSIONS = 8 [(metadata) = { exit_code: 1 }];
  1050      D_FILE_PARSE_FAILURE = 9 [(metadata) = { exit_code: 1 }];
  1051      COVERAGE_NOTES_CREATION_FAILURE = 10 [(metadata) = { exit_code: 1 }];
  1052      MODULE_EXPANSION_MISSING_DATA = 11 [(metadata) = { exit_code: 1 }];
  1053    }
  1054  
  1055    Code code = 1;
  1056  }
  1057  
  1058  message StarlarkAction {
  1059    enum Code {
  1060      STARLARK_ACTION_UNKNOWN = 0 [(metadata) = { exit_code: 37 }];
  1061      UNUSED_INPUT_LIST_READ_FAILURE = 1 [(metadata) = { exit_code: 36 }];
  1062      UNUSED_INPUT_LIST_FILE_NOT_FOUND = 2 [(metadata) = { exit_code: 1 }];
  1063    }
  1064  
  1065    Code code = 1;
  1066  }
  1067  
  1068  message NinjaAction {
  1069    enum Code {
  1070      NINJA_ACTION_UNKNOWN = 0 [(metadata) = { exit_code: 37 }];
  1071      INVALID_DEPFILE_DECLARED_DEPENDENCY = 1 [(metadata) = { exit_code: 36 }];
  1072      D_FILE_PARSE_FAILURE = 2 [(metadata) = { exit_code: 36 }];
  1073    }
  1074  
  1075    Code code = 1;
  1076  }
  1077  
  1078  message DynamicExecution {
  1079    enum Code {
  1080      DYNAMIC_EXECUTION_UNKNOWN = 0 [(metadata) = { exit_code: 37 }];
  1081      XCODE_RELATED_PREREQ_UNMET = 1 [(metadata) = { exit_code: 36 }];
  1082      ACTION_LOG_MOVE_FAILURE = 2 [(metadata) = { exit_code: 1 }];
  1083      RUN_FAILURE = 3 [(metadata) = { exit_code: 1 }];
  1084      NO_USABLE_STRATEGY_FOUND = 4 [(metadata) = { exit_code: 2 }];
  1085    }
  1086  
  1087    Code code = 1;
  1088  }
  1089  
  1090  message FailAction {
  1091    enum Code {
  1092      FAIL_ACTION_UNKNOWN = 0 [(metadata) = { exit_code: 37 }];
  1093      INTENTIONAL_FAILURE = 1 [(metadata) = { exit_code: 1 }];
  1094      INCORRECT_PYTHON_VERSION = 2 [(metadata) = { exit_code: 1 }];
  1095      PROGUARD_SPECS_MISSING = 3 [(metadata) = { exit_code: 1 }];
  1096      DYNAMIC_LINKING_NOT_SUPPORTED = 4 [(metadata) = { exit_code: 1 }];
  1097      SOURCE_FILES_MISSING = 5 [(metadata) = { exit_code: 1 }];
  1098      INCORRECT_TOOLCHAIN = 6 [(metadata) = { exit_code: 1 }];
  1099      FRAGMENT_CLASS_MISSING = 7 [(metadata) = { exit_code: 1 }];
  1100      reserved 8, 9; // For internal use
  1101      CANT_BUILD_INCOMPATIBLE_TARGET = 10 [(metadata) = { exit_code: 1 }];
  1102    }
  1103  
  1104    Code code = 1;
  1105  }
  1106  
  1107  message SymlinkAction {
  1108    enum Code {
  1109      SYMLINK_ACTION_UNKNOWN = 0 [(metadata) = { exit_code: 37 }];
  1110      EXECUTABLE_INPUT_NOT_FILE = 1 [(metadata) = { exit_code: 1 }];
  1111      EXECUTABLE_INPUT_IS_NOT = 2 [(metadata) = { exit_code: 1 }];
  1112      EXECUTABLE_INPUT_CHECK_IO_EXCEPTION = 3 [(metadata) = { exit_code: 1 }];
  1113      LINK_CREATION_IO_EXCEPTION = 4 [(metadata) = { exit_code: 1 }];
  1114      LINK_TOUCH_IO_EXCEPTION = 5 [(metadata) = { exit_code: 1 }];
  1115    }
  1116  
  1117    Code code = 1;
  1118  }
  1119  
  1120  message CppLink {
  1121    enum Code {
  1122      CPP_LINK_UNKNOWN = 0 [(metadata) = { exit_code: 37 }];
  1123      COMMAND_GENERATION_FAILURE = 1 [(metadata) = { exit_code: 1 }];
  1124      FAKE_COMMAND_GENERATION_FAILURE = 2 [(metadata) = { exit_code: 1 }];
  1125    }
  1126  
  1127    Code code = 1;
  1128  }
  1129  
  1130  message LtoAction {
  1131    enum Code {
  1132      LTO_ACTION_UNKNOWN = 0 [(metadata) = { exit_code: 37 }];
  1133      INVALID_ABSOLUTE_PATH_IN_IMPORTS = 1 [(metadata) = { exit_code: 1 }];
  1134      MISSING_BITCODE_FILES = 2 [(metadata) = { exit_code: 1 }];
  1135      IMPORTS_READ_IO_EXCEPTION = 3 [(metadata) = { exit_code: 1 }];
  1136    }
  1137  
  1138    Code code = 1;
  1139  }
  1140  
  1141  message TestAction {
  1142    enum Code {
  1143      TEST_ACTION_UNKNOWN = 0 [(metadata) = { exit_code: 37 }];
  1144      NO_KEEP_GOING_TEST_FAILURE = 1 [(metadata) = { exit_code: 1 }];
  1145      LOCAL_TEST_PREREQ_UNMET = 2 [(metadata) = { exit_code: 1 }];
  1146      COMMAND_LINE_EXPANSION_FAILURE = 3 [(metadata) = { exit_code: 1 }];
  1147      DUPLICATE_CPU_TAGS = 4 [(metadata) = { exit_code: 1 }];
  1148      INVALID_CPU_TAG = 5 [(metadata) = { exit_code: 1 }];
  1149    }
  1150  
  1151    Code code = 1;
  1152  }
  1153  
  1154  message Worker {
  1155    enum Code {
  1156      WORKER_UNKNOWN = 0 [(metadata) = { exit_code: 37 }];
  1157      MULTIPLEXER_INSTANCE_REMOVAL_FAILURE = 1 [(metadata) = { exit_code: 1 }];
  1158      MULTIPLEXER_DOES_NOT_EXIST = 2 [(metadata) = { exit_code: 1 }];
  1159      NO_TOOLS = 3 [(metadata) = { exit_code: 1 }];
  1160      NO_FLAGFILE = 4 [(metadata) = { exit_code: 1 }];
  1161      VIRTUAL_INPUT_MATERIALIZATION_FAILURE = 5 [(metadata) = { exit_code: 1 }];
  1162      BORROW_FAILURE = 6 [(metadata) = { exit_code: 1 }];
  1163      PREFETCH_FAILURE = 7 [(metadata) = { exit_code: 36 }];
  1164      PREPARE_FAILURE = 8 [(metadata) = { exit_code: 1 }];
  1165      REQUEST_FAILURE = 9 [(metadata) = { exit_code: 1 }];
  1166      PARSE_RESPONSE_FAILURE = 10 [(metadata) = { exit_code: 1 }];
  1167      NO_RESPONSE = 11 [(metadata) = { exit_code: 1 }];
  1168      FINISH_FAILURE = 12 [(metadata) = { exit_code: 1 }];
  1169      FORBIDDEN_INPUT = 13 [(metadata) = { exit_code: 1 }];
  1170    }
  1171  
  1172    Code code = 1;
  1173  }
  1174  
  1175  message Analysis {
  1176    enum Code {
  1177      ANALYSIS_UNKNOWN = 0 [(metadata) = { exit_code: 37 }];
  1178      LOAD_FAILURE = 1 [(metadata) = { exit_code: 1 }];
  1179      // TODO(b/138456686): this code should be deprecated in favor of more finely
  1180      //   resolved loading-phase codes.
  1181      GENERIC_LOADING_PHASE_FAILURE = 2 [(metadata) = { exit_code: 1 }];
  1182      NOT_ALL_TARGETS_ANALYZED = 3 [(metadata) = { exit_code: 1 }];
  1183      CYCLE = 4 [(metadata) = { exit_code: 1 }];
  1184      PARAMETERIZED_TOP_LEVEL_ASPECT_INVALID = 5 [(metadata) = { exit_code: 1 }];
  1185      ASPECT_LABEL_SYNTAX_ERROR = 6 [(metadata) = { exit_code: 1 }];
  1186      ASPECT_PREREQ_UNMET = 7 [(metadata) = { exit_code: 1 }];
  1187      ASPECT_NOT_FOUND = 8 [(metadata) = { exit_code: 1 }];
  1188      ACTION_CONFLICT = 9 [(metadata) = { exit_code: 1 }];
  1189      ARTIFACT_PREFIX_CONFLICT = 10 [(metadata) = { exit_code: 1 }];
  1190      UNEXPECTED_ANALYSIS_EXCEPTION = 11 [(metadata) = { exit_code: 1 }];
  1191      TARGETS_MISSING_ENVIRONMENTS = 12 [(metadata) = { exit_code: 1 }];
  1192      INVALID_ENVIRONMENT = 13 [(metadata) = { exit_code: 1 }];
  1193      ENVIRONMENT_MISSING_FROM_GROUPS = 14 [(metadata) = { exit_code: 1 }];
  1194      EXEC_GROUP_MISSING = 15 [(metadata) = { exit_code: 1 }];
  1195      INVALID_EXECUTION_PLATFORM = 16 [(metadata) = { exit_code: 1 }];
  1196      ASPECT_CREATION_FAILED = 17 [(metadata) = { exit_code: 1 }];
  1197      CONFIGURED_VALUE_CREATION_FAILED = 18 [(metadata) = { exit_code: 1 }];
  1198      INCOMPATIBLE_TARGET_REQUESTED = 19 [(metadata) = { exit_code: 1 }];
  1199      ANALYSIS_FAILURE_PROPAGATION_FAILED = 20 [(metadata) = { exit_code: 1 }];
  1200    }
  1201  
  1202    Code code = 1;
  1203  }
  1204  
  1205  message PackageLoading {
  1206    enum Code {
  1207      PACKAGE_LOADING_UNKNOWN = 0 [(metadata) = { exit_code: 37 }];
  1208      WORKSPACE_FILE_ERROR = 1 [(metadata) = { exit_code: 1 }];
  1209      MAX_COMPUTATION_STEPS_EXCEEDED = 2 [(metadata) = { exit_code: 1 }];
  1210      BUILD_FILE_MISSING = 3 [(metadata) = { exit_code: 1 }];
  1211      REPOSITORY_MISSING = 4 [(metadata) = { exit_code: 1 }];
  1212      PERSISTENT_INCONSISTENT_FILESYSTEM_ERROR = 5
  1213          [(metadata) = { exit_code: 36 }];
  1214      TRANSIENT_INCONSISTENT_FILESYSTEM_ERROR = 6
  1215          [(metadata) = { exit_code: 36 }];
  1216      INVALID_NAME = 7 [(metadata) = { exit_code: 1 }];
  1217      // was: PRELUDE_FILE_READ_ERROR. Replaced by IMPORT_STARLARK_FILE_ERROR
  1218      // when the prelude was changed to be loaded as a Starlark module.
  1219      reserved 8;
  1220      EVAL_GLOBS_SYMLINK_ERROR = 9 [(metadata) = { exit_code: 1 }];
  1221      IMPORT_STARLARK_FILE_ERROR = 10 [(metadata) = { exit_code: 1 }];
  1222      PACKAGE_MISSING = 11 [(metadata) = { exit_code: 1 }];
  1223      TARGET_MISSING = 12 [(metadata) = { exit_code: 1 }];
  1224      NO_SUCH_THING = 13 [(metadata) = { exit_code: 1 }];
  1225      GLOB_IO_EXCEPTION = 14 [(metadata) = { exit_code: 36 }];
  1226      DUPLICATE_LABEL = 15 [(metadata) = { exit_code: 1 }];
  1227      INVALID_PACKAGE_SPECIFICATION = 16 [(metadata) = { exit_code: 1 }];
  1228      SYNTAX_ERROR = 17 [(metadata) = { exit_code: 1 }];
  1229      ENVIRONMENT_IN_DIFFERENT_PACKAGE = 18 [(metadata) = { exit_code: 1 }];
  1230      DEFAULT_ENVIRONMENT_UNDECLARED = 19 [(metadata) = { exit_code: 1 }];
  1231      ENVIRONMENT_IN_MULTIPLE_GROUPS = 20 [(metadata) = { exit_code: 1 }];
  1232      ENVIRONMENT_DOES_NOT_EXIST = 21 [(metadata) = { exit_code: 1 }];
  1233      ENVIRONMENT_INVALID = 22 [(metadata) = { exit_code: 1 }];
  1234      ENVIRONMENT_NOT_IN_GROUP = 23 [(metadata) = { exit_code: 1 }];
  1235      PACKAGE_NAME_INVALID = 24 [(metadata) = { exit_code: 1 }];
  1236      STARLARK_EVAL_ERROR = 25 [(metadata) = { exit_code: 1 }];
  1237      LICENSE_PARSE_FAILURE = 26 [(metadata) = { exit_code: 1 }];
  1238      DISTRIBUTIONS_PARSE_FAILURE = 27 [(metadata) = { exit_code: 1 }];
  1239      LABEL_CROSSES_PACKAGE_BOUNDARY = 28 [(metadata) = { exit_code: 1 }];
  1240      // Failure while evaluating or applying @_builtins injection. Since the
  1241      // builtins .bzl files are always packaged with Blaze in production, a
  1242      // failure here generally indicates a bug in Blaze.
  1243      BUILTINS_INJECTION_FAILURE = 29 [(metadata) = { exit_code: 1 }];
  1244      SYMLINK_CYCLE_OR_INFINITE_EXPANSION = 30 [(metadata) = { exit_code: 1 }];
  1245      OTHER_IO_EXCEPTION = 31 [(metadata) = { exit_code: 36 }];
  1246    }
  1247  
  1248    Code code = 1;
  1249  }
  1250  
  1251  message Toolchain {
  1252    enum Code {
  1253      TOOLCHAIN_UNKNOWN = 0 [(metadata) = { exit_code: 37 }];
  1254      MISSING_PROVIDER = 1 [(metadata) = { exit_code: 1 }];
  1255      INVALID_CONSTRAINT_VALUE = 2 [(metadata) = { exit_code: 1 }];
  1256      INVALID_PLATFORM_VALUE = 3 [(metadata) = { exit_code: 1 }];
  1257      INVALID_TOOLCHAIN = 4 [(metadata) = { exit_code: 1 }];
  1258      NO_MATCHING_EXECUTION_PLATFORM = 5 [(metadata) = { exit_code: 1 }];
  1259      NO_MATCHING_TOOLCHAIN = 6 [(metadata) = { exit_code: 1 }];
  1260      INVALID_TOOLCHAIN_TYPE = 7 [(metadata) = { exit_code: 1 }];
  1261    }
  1262  
  1263    Code code = 1;
  1264  }
  1265  
  1266  message StarlarkLoading {
  1267    enum Code {
  1268      STARLARK_LOADING_UNKNOWN = 0 [(metadata) = { exit_code: 37 }];
  1269      CYCLE = 1 [(metadata) = { exit_code: 1 }];
  1270      COMPILE_ERROR = 2 [(metadata) = { exit_code: 1 }];
  1271      PARSE_ERROR = 3 [(metadata) = { exit_code: 1 }];
  1272      EVAL_ERROR = 4 [(metadata) = { exit_code: 1 }];
  1273      CONTAINING_PACKAGE_NOT_FOUND = 5 [(metadata) = { exit_code: 1 }];
  1274      PACKAGE_NOT_FOUND = 6 [(metadata) = { exit_code: 1 }];
  1275      IO_ERROR = 7 [(metadata) = { exit_code: 1 }];
  1276      LABEL_CROSSES_PACKAGE_BOUNDARY = 8 [(metadata) = { exit_code: 1 }];
  1277      BUILTINS_ERROR = 9 [(metadata) = { exit_code: 1 }];
  1278      VISIBILITY_ERROR = 10 [(metadata) = { exit_code: 1 }];
  1279    }
  1280  
  1281    Code code = 1;
  1282  }
  1283  
  1284  message ExternalDeps {
  1285    enum Code {
  1286      EXTERNAL_DEPS_UNKNOWN = 0 [(metadata) = { exit_code: 37 }];
  1287      MODULE_NOT_FOUND = 1 [(metadata) = { exit_code: 48 }];
  1288      BAD_MODULE = 2 [(metadata) = { exit_code: 48 }];
  1289      VERSION_RESOLUTION_ERROR = 3 [(metadata) = { exit_code: 48 }];
  1290      INVALID_REGISTRY_URL = 4 [(metadata) = { exit_code: 48 }];
  1291      ERROR_ACCESSING_REGISTRY = 5 [(metadata) = { exit_code: 32 }];
  1292    }
  1293  
  1294    Code code = 1;
  1295  }
  1296  
  1297  message DiffAwareness {
  1298    enum Code {
  1299      DIFF_AWARENESS_UNKNOWN = 0 [(metadata) = { exit_code: 37 }];
  1300      DIFF_STAT_FAILED = 1 [(metadata) = { exit_code: 36 }];
  1301    }
  1302  
  1303    Code code = 1;
  1304  }
  1305  
  1306  message ModqueryCommand {
  1307    enum Code {
  1308      MODQUERY_COMMAND_UNKNOWN = 0 [(metadata) = { exit_code: 37 }];
  1309      MISSING_ARGUMENTS = 1 [(metadata) = { exit_code: 2 }];
  1310      TOO_MANY_ARGUMENTS = 2 [(metadata) = { exit_code: 2 }];
  1311      INVALID_ARGUMENTS = 3 [(metadata) = { exit_code: 2 }];
  1312    }
  1313  
  1314    Code code = 1;
  1315  }