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