From 07c42aeae0fb063f3d88a53e1d1620e6cf786935 Mon Sep 17 00:00:00 2001
From: sebastianMindee <130448732+sebastianMindee@users.noreply.github.com>
Date: Mon, 20 Jul 2026 17:58:49 +0200
Subject: [PATCH 1/3] :sparkles: add webhook error response
---
.../v2/parsing/FailedInferenceResponse.java | 55 +++++++++++++++++++
.../parsing/FailedInferenceResponseTest.java | 33 +++++++++++
src/test/resources | 2 +-
3 files changed, 89 insertions(+), 1 deletion(-)
create mode 100644 src/main/java/com/mindee/v2/parsing/FailedInferenceResponse.java
create mode 100644 src/test/java/com/mindee/v2/parsing/FailedInferenceResponseTest.java
diff --git a/src/main/java/com/mindee/v2/parsing/FailedInferenceResponse.java b/src/main/java/com/mindee/v2/parsing/FailedInferenceResponse.java
new file mode 100644
index 000000000..ec2d3c259
--- /dev/null
+++ b/src/main/java/com/mindee/v2/parsing/FailedInferenceResponse.java
@@ -0,0 +1,55 @@
+package com.mindee.v2.parsing;
+
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+import com.mindee.v1.parsing.common.LocalDateTimeDeserializer;
+import com.mindee.v2.parsing.error.ErrorResponse;
+import java.time.LocalDateTime;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * Represents an asynchronous polling response.
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@JsonIgnoreProperties(ignoreUnknown = true)
+public class FailedInferenceResponse extends CommonResponse {
+ /**
+ * UUID of the failed inference.
+ */
+ @JsonProperty("inference_id")
+ String inferenceId;
+
+ /**
+ * UUID of the model used.
+ */
+ @JsonProperty("model_id")
+ String modelId;
+
+ /**
+ * Name of the input file.
+ */
+ @JsonProperty("file_name")
+ String fileName;
+
+ /**
+ * Alias sent for the file, if any
+ */
+ @JsonProperty("file_alias")
+ String fileAlias;
+
+ /**
+ * Problem details for the failure, if available.
+ */
+ @JsonProperty("error")
+ ErrorResponse error;
+
+ /**
+ * Date and time when the inference was started.
+ */
+ @JsonProperty("created_at")
+ @JsonDeserialize(using = LocalDateTimeDeserializer.class)
+ LocalDateTime createdAt;
+}
diff --git a/src/test/java/com/mindee/v2/parsing/FailedInferenceResponseTest.java b/src/test/java/com/mindee/v2/parsing/FailedInferenceResponseTest.java
new file mode 100644
index 000000000..d2db09370
--- /dev/null
+++ b/src/test/java/com/mindee/v2/parsing/FailedInferenceResponseTest.java
@@ -0,0 +1,33 @@
+package com.mindee.v2.parsing;
+
+import static com.mindee.TestingUtilities.getV2ResourcePath;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertInstanceOf;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+
+import java.io.IOException;
+import java.time.LocalDateTime;
+import org.junit.jupiter.api.DisplayName;
+import org.junit.jupiter.api.Test;
+
+@DisplayName("MindeeV2 - Failed Inference Tests")
+public class FailedInferenceResponseTest {
+ @Test
+ @DisplayName("properties must be valid")
+ void whenFailed_mustLoad() throws IOException {
+ var localResponse = new LocalResponse(
+ getV2ResourcePath("errors/webhook_error_500_failed.json")
+ );
+ var response = localResponse.deserializeResponse(FailedInferenceResponse.class);
+ assertNotNull(response);
+ assertEquals("12345678-1234-1234-1234-123456789ABC", response.getInferenceId());
+ assertEquals("default_sample.jpg", response.getFileName());
+ assertEquals("dummy-alias.jpg", response.getFileAlias());
+ assertEquals("dummy-alias.jpg", response.getFileAlias());
+ assertInstanceOf(LocalDateTime.class, response.getCreatedAt());
+ assertNotNull(response.getError());
+ assertNotNull(response.getError());
+ assertEquals(500, response.getError().getStatus());
+ assertEquals("500-012", response.getError().getCode());
+ }
+}
diff --git a/src/test/resources b/src/test/resources
index 2d7fcf8f5..e41ab97c2 160000
--- a/src/test/resources
+++ b/src/test/resources
@@ -1 +1 @@
-Subproject commit 2d7fcf8f591f6d7f40e39862965325e6a8a21874
+Subproject commit e41ab97c2833f15ea5c4edf221c2d197d212f632
From 7c3339cab38a93d34b2d6db2e5d961f9bfcc64c7 Mon Sep 17 00:00:00 2001
From: sebastianMindee <130448732+sebastianMindee@users.noreply.github.com>
Date: Mon, 20 Jul 2026 17:59:30 +0200
Subject: [PATCH 2/3] :arrow_up: bump dependencies
---
pom.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/pom.xml b/pom.xml
index c35d7bc3b..703b5e825 100644
--- a/pom.xml
+++ b/pom.xml
@@ -390,7 +390,7 @@
UTF-8
- 2.21.4
+ 2.21.5
4.12.0
4.7.7
3.6.1
From 94e25b100f49bcb432314418a8ea0f3b068d1475 Mon Sep 17 00:00:00 2001
From: sebastianMindee <130448732+sebastianMindee@users.noreply.github.com>
Date: Tue, 21 Jul 2026 16:20:51 +0200
Subject: [PATCH 3/3] fix folder ordering
---
.../v2/parsing/{ => inference}/FailedInferenceResponse.java | 3 ++-
.../com/mindee/v2/parsing/FailedInferenceResponseTest.java | 1 +
2 files changed, 3 insertions(+), 1 deletion(-)
rename src/main/java/com/mindee/v2/parsing/{ => inference}/FailedInferenceResponse.java (93%)
diff --git a/src/main/java/com/mindee/v2/parsing/FailedInferenceResponse.java b/src/main/java/com/mindee/v2/parsing/inference/FailedInferenceResponse.java
similarity index 93%
rename from src/main/java/com/mindee/v2/parsing/FailedInferenceResponse.java
rename to src/main/java/com/mindee/v2/parsing/inference/FailedInferenceResponse.java
index ec2d3c259..5994a84bf 100644
--- a/src/main/java/com/mindee/v2/parsing/FailedInferenceResponse.java
+++ b/src/main/java/com/mindee/v2/parsing/inference/FailedInferenceResponse.java
@@ -1,9 +1,10 @@
-package com.mindee.v2.parsing;
+package com.mindee.v2.parsing.inference;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.mindee.v1.parsing.common.LocalDateTimeDeserializer;
+import com.mindee.v2.parsing.CommonResponse;
import com.mindee.v2.parsing.error.ErrorResponse;
import java.time.LocalDateTime;
import lombok.Data;
diff --git a/src/test/java/com/mindee/v2/parsing/FailedInferenceResponseTest.java b/src/test/java/com/mindee/v2/parsing/FailedInferenceResponseTest.java
index d2db09370..47f85abe0 100644
--- a/src/test/java/com/mindee/v2/parsing/FailedInferenceResponseTest.java
+++ b/src/test/java/com/mindee/v2/parsing/FailedInferenceResponseTest.java
@@ -5,6 +5,7 @@
import static org.junit.jupiter.api.Assertions.assertInstanceOf;
import static org.junit.jupiter.api.Assertions.assertNotNull;
+import com.mindee.v2.parsing.inference.FailedInferenceResponse;
import java.io.IOException;
import java.time.LocalDateTime;
import org.junit.jupiter.api.DisplayName;