{"record":{"id":"a5121d4a6cb3dcdc","repo":"apache/beam","slug":"response-get-geterror","errorCode":null,"errorMessage":"response.get().getError()","messagePattern":"response\\.get\\(\\)\\.getError\\(\\)","errorType":"exception","errorClass":"IllegalStateException","httpStatus":null,"severity":"error","filePath":"sdks/java/harness/src/main/java/org/apache/beam/fn/harness/state/OrderedListUserState.java","lineNumber":300,"sourceCode":"  }\n\n  public void asyncClose() throws Exception {\n    isClosed = true;\n\n    if (!pendingRemoves.isEmpty()) {\n      for (Range<Instant> r : pendingRemoves.asRanges()) {\n        StateRequest.Builder stateRequest = this.requestTemplate.toBuilder();\n        stateRequest.setClear(StateClearRequest.newBuilder().build());\n        stateRequest\n            .getStateKeyBuilder()\n            .getOrderedListUserStateBuilder()\n            .getRangeBuilder()\n            .setStart(r.lowerEndpoint().getMillis())\n            .setEnd(r.upperEndpoint().getMillis());\n\n        CompletableFuture<StateResponse> response = beamFnStateClient.handle(stateRequest);\n        if (!response.get().getError().isEmpty()) {\n          throw new IllegalStateException(response.get().getError());\n        }\n      }\n      pendingRemoves.clear();\n    }\n\n    if (!pendingAdds.isEmpty()) {\n      ByteStringOutputStream outStream = new ByteStringOutputStream();\n\n      for (Entry<Instant, Collection<T>> entry : pendingAdds.entrySet()) {\n        for (T v : entry.getValue()) {\n          TimestampedValue<T> tv = TimestampedValue.of(v, entry.getKey());\n          try {\n            timestampedValueCoder.encode(tv, outStream);\n          } catch (IOException ex) {\n            throw new RuntimeException(ex);\n          }\n        }\n      }","sourceCodeStart":282,"sourceCodeEnd":318,"githubUrl":"https://github.com/apache/beam/blob/12126d8942aaf848030c478b4c6a28c6af861c66/sdks/java/harness/src/main/java/org/apache/beam/fn/harness/state/OrderedListUserState.java#L282-L318","documentation":"OrderedListUserState.asyncClose throws this IllegalStateException when the beamFnStateClient response for a pending clear (range-clear) request carries a non-empty error field. It surfaces an error reported by the runner/state service when flushing buffered range removals at close time, and includes the runner's error message verbatim.","triggerScenarios":"Calling asyncClose (e.g. via try-with-resources or at bundle finish) while pendingRemoves exist and the StateRequest handling returns a response whose getError() is non-empty.","commonSituations":"Runner-side state backend failures; invalid range endpoints sent for clearRange; connection/instruction ID problems with the state service; timeouts on the state client future also surface here (ExecutionException from response.get()).","solutions":["Read the IllegalStateException message for the runner's underlying state error","Verify the instruction ID is still valid (bundle not already finished) when closing state","Check runner/logs for state backend failures (e.g. state service unavailable)","Ensure clearRange ranges are valid (start <= end, within list bounds) before buffering removes"],"exampleFix":"// before: swallowing range errors until close\nstate.clearRange(start, end);\n// after: validate range before issuing\nif (start.compareTo(end) > 0) throw new IllegalArgumentException(\"start > end\");\nstate.clearRange(start, end);","handlingStrategy":"try-catch","validationCode":"// Validate ranges before clearing\nif (start.getMillis() > end.getMillis()) {\n  throw new IllegalArgumentException(\"clearRange start after end\");\n}","typeGuard":null,"tryCatchPattern":"try (OrderedListUserState state = ...) {\n  ...\n} catch (IllegalStateException e) {\n  logger.error(\"orderedList clear failed: {}\", e.getMessage());\n  throw e;\n}","preventionTips":["Keep clearRange ranges valid and bounded","Close user states within the active bundle window","Monitor runner logs for state service errors"],"tags":["java","apache-beam","state-api","runner-error"],"backgroundTag":"api-error-response","analyzedSha":"12126d8942aaf848030c478b4c6a28c6af861c66","analyzedAt":"2026-09-13T01:50:10.254Z","contentChangedAt":"2026-09-13T01:50:10.254Z","schemaVersion":2},"datasetVersion":"2026-09-20T03:17:13.778Z"}