{"record":{"id":"3c9778d77cea7aca","repo":"bazelbuild/bazel","slug":"input-is-not-a-long","errorCode":null,"errorMessage":"'\" + input + \"' is not a long","messagePattern":"'\" \\+ input \\+ \"' is not a long","errorType":"validation","errorClass":"OptionsParsingException","httpStatus":null,"severity":"error","filePath":"src/main/java/com/google/devtools/common/options/Converters.java","lineNumber":126,"sourceCode":"      } catch (NumberFormatException e) {\n        throw new OptionsParsingException(\"'\" + input + \"' is not an int\", e);\n      }\n    }\n\n    @Override\n    public String getTypeDescription() {\n      return \"an integer\";\n    }\n  }\n\n  /** Standard converter for longs. */\n  public static class LongConverter extends Converter.Contextless<Long> {\n    @Override\n    public Long convert(String input) throws OptionsParsingException {\n      try {\n        return Long.decode(input);\n      } catch (NumberFormatException e) {\n        throw new OptionsParsingException(\"'\" + input + \"' is not a long\", e);\n      }\n    }\n\n    @Override\n    public String getTypeDescription() {\n      return \"a long integer\";\n    }\n  }\n\n  /** Standard converter for doubles. */\n  public static class DoubleConverter extends Converter.Contextless<Double> {\n    @Override\n    public Double convert(String input) throws OptionsParsingException {\n      try {\n        return Double.parseDouble(input);\n      } catch (NumberFormatException e) {\n        throw new OptionsParsingException(\"'\" + input + \"' is not a double\", e);\n      }","sourceCodeStart":108,"sourceCodeEnd":144,"githubUrl":"https://github.com/bazelbuild/bazel/blob/e6e199d0601a244511b4cf18c8b2828aa73db1fd/src/main/java/com/google/devtools/common/options/Converters.java#L108-L144","documentation":"Thrown by Converters.LongConverter.convert when Long.decode(input) raises NumberFormatException. It mirrors IntegerConverter but for 64-bit long options: hex/octal/decimal literals are accepted by decode(), anything non-conforming is rejected with an OptionsParsingException quoting the input.","triggerScenarios":"Passing --my_long_flag=10L, --my_long_flag=2^40, --my_long_flag=\"\" or a value beyond Long range to an option whose converter is LongConverter.","commonSituations":"Timeouts/byte thresholds configured with units or expressions (e.g. \"4G\", \"10s\") on a flag that only takes a raw long; trailing Java-literal L; empty values from unset variables.","solutions":["Pass a raw integer literal within long range, e.g. --my_long_flag=4294967296.","Express units by choosing the right flag (Duration-typed or byte-size-typed flags) instead of suffixing a long flag.","Quote shell expansions and default empty variables to a valid number."],"exampleFix":"# before\nbazel test --my_long_flag=4G //...\n# after\nbazel test --my_long_flag=4294967296 //...","handlingStrategy":"validation","validationCode":"boolean isParsableLong(String s) {\n  if (s == null) return false;\n  try { Long.decode(s); return true; }\n  catch (NumberFormatException e) { return false; }\n}","typeGuard":"boolean isLongFlagValue(String s) {\n  return s != null && s.matches(\"[+-]?[0-9]+\") && !s.toLowerCase(Locale.ROOT).endsWith(\"l\");\n}","tryCatchPattern":null,"preventionTips":["Do not paste Java long literals (10L) into command lines.","Convert human units (4G, 10s) with the right unit-aware flag, not a raw long flag.","Range-check long flags in wrappers before invoking bazel."],"tags":["bazel","options","converter","long","cli"],"backgroundTag":null,"analyzedSha":"e6e199d0601a244511b4cf18c8b2828aa73db1fd","analyzedAt":"2026-08-14T10:24:27.848Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}