Skip to content

Commit 6c76a93

Browse files
authored
fix: HTTP+JSON transport returns 501 instead of 400 for UnsupportedOperationError. (#787)
Returning the proper status code. Fixes #765 🦕 Signed-off-by: Emmanuel Hugonnet <ehugonne@redhat.com>
1 parent 8f31f87 commit 6c76a93

1 file changed

Lines changed: 1 addition & 34 deletions

File tree

transport/rest/src/main/java/io/a2a/transport/rest/handler/RestHandler.java

Lines changed: 1 addition & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -42,32 +42,26 @@
4242
import io.a2a.spec.A2AError;
4343
import io.a2a.spec.AgentCard;
4444
import io.a2a.spec.CancelTaskParams;
45-
import io.a2a.spec.ContentTypeNotSupportedError;
4645
import io.a2a.spec.ExtendedAgentCardNotConfiguredError;
4746
import io.a2a.spec.DeleteTaskPushNotificationConfigParams;
4847
import io.a2a.spec.EventKind;
49-
import io.a2a.spec.ExtensionSupportRequiredError;
5048
import io.a2a.spec.GetTaskPushNotificationConfigParams;
5149
import io.a2a.spec.InternalError;
52-
import io.a2a.spec.InvalidAgentResponseError;
5350
import io.a2a.spec.InvalidParamsError;
5451
import io.a2a.spec.InvalidRequestError;
5552
import io.a2a.spec.JSONParseError;
5653
import io.a2a.spec.ListTaskPushNotificationConfigsParams;
5754
import io.a2a.spec.ListTaskPushNotificationConfigsResult;
5855
import io.a2a.spec.ListTasksParams;
59-
import io.a2a.spec.MethodNotFoundError;
6056
import io.a2a.spec.PushNotificationNotSupportedError;
6157
import io.a2a.spec.StreamingEventKind;
6258
import io.a2a.spec.Task;
6359
import io.a2a.spec.TaskIdParams;
64-
import io.a2a.spec.TaskNotCancelableError;
6560
import io.a2a.spec.TaskNotFoundError;
6661
import io.a2a.spec.TaskPushNotificationConfig;
6762
import io.a2a.spec.TaskQueryParams;
6863
import io.a2a.spec.TaskState;
6964
import io.a2a.spec.UnsupportedOperationError;
70-
import io.a2a.spec.VersionNotSupportedError;
7165
import mutiny.zero.ZeroPublisher;
7266
import org.jspecify.annotations.Nullable;
7367

@@ -763,34 +757,7 @@ private static int mapErrorToHttpStatus(A2AError error) {
763757
if (errorCode != null) {
764758
return errorCode.httpCode();
765759
}
766-
if (error instanceof InvalidParamsError) {
767-
return 422;
768-
}
769-
if (error instanceof MethodNotFoundError || error instanceof TaskNotFoundError) {
770-
return 404;
771-
}
772-
if (error instanceof TaskNotCancelableError) {
773-
return 409;
774-
}
775-
if (error instanceof UnsupportedOperationError) {
776-
return 501;
777-
}
778-
if (error instanceof ContentTypeNotSupportedError) {
779-
return 415;
780-
}
781-
if (error instanceof InvalidAgentResponseError) {
782-
return 502;
783-
}
784-
if (error instanceof ExtendedAgentCardNotConfiguredError
785-
|| error instanceof ExtensionSupportRequiredError
786-
|| error instanceof VersionNotSupportedError
787-
|| error instanceof PushNotificationNotSupportedError) {
788-
return 400;
789-
}
790-
if (error instanceof InternalError) {
791-
return 500;
792-
}
793-
return 500;
760+
return A2AErrorCodes.INTERNAL.httpCode();
794761
}
795762

796763
/**

0 commit comments

Comments
 (0)