• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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   }
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 
245 message 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 
256 message 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 
285 message 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 
301 message 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 
310 message 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 
323 message 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 
334 message 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 
345 message 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 
358 message 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 
369 message 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 
401 message 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.
460 message 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 
477 message 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 
486 message 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 
503 message 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 
529 message 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 
557 message 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 
570 message 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.
584 message 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 
609 message 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 
624 message 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 
636 message 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 
695 message 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 
704 message 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 
713 message 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 
725 message 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 
737 message 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 
756 message 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 
776 message 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 
787 message 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 
822 message 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 
850 message 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 
868 message 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 
878 message 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 
899 message 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 
913 message 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 
923 message 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 
937 message 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 
947 message 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 
971 message 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 
980 message 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 
992 message 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 
1007 message 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 
1020 message 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 
1030 message 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 
1049 message 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 
1059 message 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 
1069 message 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 
1081 message 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 
1098 message 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 
1111 message 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 
1121 message 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 
1132 message 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 
1145 message 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 
1166 message 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 
1196 message 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 
1242 message 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 
1257 message 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 
1275 message 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 
1288 message 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 
1297 message 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