{"record":{"id":"49091f4a0ee9ca89","repo":"apache/druid","slug":"openlineage-event-dropped-all-d-attempts-to-po","errorCode":null,"errorMessage":"OpenLineage event dropped: all [%d] attempts to POST to [%s] failed with an exception","messagePattern":"OpenLineage event dropped: all \\[(.+?)\\] attempts to POST to \\[(.+?)\\] failed with an exception","errorType":"console","errorClass":null,"httpStatus":null,"severity":"error","filePath":"extensions-contrib/openlineage-emitter/src/main/java/org/apache/druid/extensions/openlineage/OpenLineageRequestLogger.java","lineNumber":519,"sourceCode":"      }\n      catch (IOException e) {\n        lastException = e;\n        log.debug(\n            e,\n            \"OpenLineage HTTP attempt [%d/%d] failed posting to [%s]\",\n            attempt + 1,\n            MAX_SEND_RETRIES + 1,\n            transportUrl\n        );\n      }\n      finally {\n        post.releaseConnection();\n      }\n    }\n\n    // All attempts exhausted — delivery guarantee is at-most-once.\n    if (lastException != null) {\n      log.warn(\n          lastException,\n          \"OpenLineage event dropped: all [%d] attempts to POST to [%s] failed with an exception\",\n          MAX_SEND_RETRIES + 1,\n          transportUrl\n      );\n    } else {\n      log.warn(\n          \"OpenLineage event dropped: all [%d] attempts to POST to [%s] returned non-2xx status [%d]\",\n          MAX_SEND_RETRIES + 1,\n          transportUrl,\n          lastStatusCode\n      );\n    }\n  }\n\n  private void putLongStat(ObjectNode node, String targetKey, Map<String, Object> stats, String... sourceKeys)\n  {\n    for (String key : sourceKeys) {","sourceCodeStart":501,"sourceCodeEnd":537,"githubUrl":"https://github.com/apache/druid/blob/9b90983fd291f26935af934383ce360473179e4d/extensions-contrib/openlineage-emitter/src/main/java/org/apache/druid/extensions/openlineage/OpenLineageRequestLogger.java#L501-L537","documentation":"OpenLineageRequestLogger.emitHttp POSTs the lineage event to the configured transport URL with up to MAX_SEND_RETRIES+1 attempts. If every attempt throws an exception (connection failure, timeout, IO error), the event is dropped (at-most-once delivery) and this warning names the URL and attempt count.","triggerScenarios":"All POST attempts throwing exceptions: target host unreachable, DNS failure, TLS handshake errors, connection refused/reset, or request timeouts against the OpenLineage endpoint.","commonSituations":"OpenLineage collector (e.g. Marquez) down or wrong port; wrong transportUrl in runtime.properties; firewalls blocking egress; TLS certificate mismatch; collector restarting.","solutions":["Verify the transportUrl is correct and reachable: curl -X POST <transportUrl> from the Druid host","Check that the OpenLineage backend (Marquez/OpenLineage server) is running and healthy","Review network/firewall/TLS configuration between Druid and the collector","Confirm events are being produced at all — note this is at-most-once delivery; dropped events are not re-sent","Increase logging verbosity to capture the underlying lastException cause"],"exampleFix":"// before\nurl = \"http://localhost:5000\" // Marquez not running on this host/port\n// after\nurl = \"http://marquez.internal:5000/api/v1/lineage\" // verified reachable\ncurl -s -o /dev/null -w '%{http_code}' -X POST http://marquez.internal:5000/api/v1/lineage","handlingStrategy":"retry","validationCode":"// before emitting\ntry (Socket s = new Socket()) {\n  s.connect(new InetSocketAddress(host, port), 3000); // verify endpoint reachable\n} catch (IOException e) { log.warn(\"OpenLineage endpoint unreachable\"); }","typeGuard":null,"tryCatchPattern":"try { logger.emit(event); } catch (Exception e) { log.warn(\"OpenLineage emit failed; event is at-most-once\", e); }","preventionTips":["Health-check the OpenLineage collector before heavy query bursts","Pin and verify transportUrl in runtime.properties","Monitor for dropped-event warnings and alert"],"tags":["openlineage","http","retry-exhausted","network"],"backgroundTag":"http-request-failed","analyzedSha":"9b90983fd291f26935af934383ce360473179e4d","analyzedAt":"2026-09-07T13:32:30.957Z","contentChangedAt":"2026-09-07T13:32:30.957Z","schemaVersion":2},"datasetVersion":"2026-09-14T11:17:12.474Z"}