🧪 Server Compliance — A2A TCK

A2A Test Compatibility Kit results for AgentBin SpecAgent (.NET SDK) • Tested: 2026-04-04 02:17:44 UTC
What is this? The A2A TCK is a conformance test suite that validates A2A server implementations against the A2A specification. Failures indicate .NET SDK gaps — not SpecAgent bugs.
Overall
53.3%
65 pass • 57 fail • 39 skip
Mandatory
51.1%
45 pass • 43 fail • 28 skip
Capabilities
0%
0 pass • 0 fail
Skipped
39
auth, gRPC, etc.

❌ Failing Tests (57)

TestCategoryStatusTransportError
test_empty_message_partsfeaturesFAILEDjsonrpcrestAssertionError: Expected error code -32602 (Invalid params) or -32603 (Internal error) for empty parts, but got: -32001 (Both codes are valid for vali
test_missing_required_message_fieldsfeaturesFAILEDjsonrpcrestAssertionError: Expected InvalidParams error code -32602 for missing messageId, but got: -32001 (Spec: InvalidParamsError) assert -32001 == -32602
test_authentication_required_when_declaredmandatoryFAILEDjsonrpcrestFailed: SPECIFICATION VIOLATION: Server processed unauthenticated request successfully. A2A v0.3.0 Section 4.4 REQUIRES authentication enforcement whe
test_invalid_credentials_rejectedmandatoryFAILEDjsonrpcrestFailed: SPECIFICATION VIOLATION: Invalid bearer_token credentials processed successfully. A2A v0.3.0 Section 4.4 REQUIRES credential validation. Expec
test_push_notification_not_supported_error_32003_enhancedmandatoryFAILEDjsonrpcrestTypeError: transport_create_task_push_notification_config() takes from 2 to 3 positional arguments but 4 were given
test_extended_agent_card_method_existsmandatoryFAILEDjsonrpcrestFailed: Failed to call agent/getAuthenticatedExtendedCard: Unexpected error code: -32600 assert -32600 in [-32007, -32603]
test_core_method_mapping_compliancemandatoryFAILEDjsonrpcrestFailed: Core method mapping test failed on jsonrpc: 'task'
test_message_send_valid_textmandatoryFAILEDjsonrpcrestAssertionError: Message send failed: {'error': {'code': -32001, 'message': 'Task not found'}} assert False + where False = is_json_rpc_success_respo
test_message_send_invalid_paramsmandatoryFAILEDjsonrpcrestAssertionError: Expected InvalidParamsError (-32602), got -32001 assert -32001 == -32602
test_message_send_continue_taskmandatoryFAILEDjsonrpcrestAssertionError: Failed to extract task ID from response assert None is not None
test_task_history_lengthmandatoryFAILEDjsonrpcrestKeyError: 'task'
test_list_all_tasksmandatoryFAILEDjsonrpcrestKeyError: 'task'
test_list_tasks_empty_when_none_existmandatoryFAILEDjsonrpcrestAssertionError: tasks/list failed: {'error': {'code': -32001, 'message': 'Task not found'}} assert False + where False = is_json_rpc_success_respons
test_list_tasks_validates_required_fieldsmandatoryFAILEDjsonrpcrestKeyError: 'task'
test_list_tasks_sorted_by_timestamp_descendingmandatoryFAILEDjsonrpcrestKeyError: 'task'
test_filter_by_context_idmandatoryFAILEDjsonrpcrestKeyError: 'task'
test_filter_by_statusmandatoryFAILEDjsonrpcrestKeyError: 'task'
test_filter_by_last_updated_aftermandatoryFAILEDjsonrpcrestKeyError: 'task'
test_combined_filtersmandatoryFAILEDjsonrpcrestKeyError: 'task'
test_default_page_sizemandatoryFAILEDjsonrpcrestAssertionError: tasks/list failed: {'error': {'code': -32001, 'message': 'Task not found'}} assert False + where False = is_json_rpc_success_respons
test_custom_page_sizemandatoryFAILEDjsonrpcrestKeyError: 'task'
test_page_token_navigationmandatoryFAILEDjsonrpcrestKeyError: 'task'
test_last_page_detectionmandatoryFAILEDjsonrpcrestKeyError: 'task'
test_total_size_accuracymandatoryFAILEDjsonrpcrestKeyError: 'task'
test_history_length_zeromandatoryFAILEDjsonrpcrestKeyError: 'task'
test_history_length_custommandatoryFAILEDjsonrpcrestKeyError: 'task'
test_history_length_exceeds_actualmandatoryFAILEDjsonrpcrestKeyError: 'task'
test_artifacts_excluded_by_defaultmandatoryFAILEDjsonrpcrestKeyError: 'task'
test_artifacts_included_when_requestedmandatoryFAILEDjsonrpcrestKeyError: 'task'
test_invalid_page_token_errormandatoryFAILEDjsonrpcrestAssertionError: Invalid pageToken should return -32602, got -32001 assert -32001 == -32602 + where -32001 = <built-in method get of dict object at 0
test_invalid_status_errormandatoryFAILEDjsonrpcrestAssertionError: Invalid status should return -32602, got -32001 assert -32001 == -32602 + where -32001 = <built-in method get of dict object at 0x00
test_negative_page_size_errormandatoryFAILEDjsonrpcrestAssertionError: Negative pageSize should return -32602, got -32001 assert -32001 == -32602 + where -32001 = <built-in method get of dict object at 0
test_zero_page_size_errormandatoryFAILEDjsonrpcrestAssertionError: pageSize=0 should return -32602, got -32001 assert -32001 == -32602 + where -32001 = <built-in method get of dict object at 0x000001
test_out_of_range_page_size_errormandatoryFAILEDjsonrpcrestAssertionError: pageSize > 100 should return -32602, got -32001 assert -32001 == -32602 + where -32001 = <built-in method get of dict object at 0x00
test_default_page_size_is_50mandatoryFAILEDjsonrpcrestKeyError: 'task'
test_negative_history_length_errormandatoryFAILEDjsonrpcrestAssertionError: Negative historyLength should return -32602, got -32001 assert -32001 == -32602 + where -32001 = <built-in method get of dict object
test_invalid_timestamp_errormandatoryFAILEDjsonrpcrestAssertionError: Invalid timestamp should return -32602, got -32001 assert -32001 == -32602 + where -32001 = <built-in method get of dict object at 0
test_extended_card_access_controlsmandatoryFAILEDjsonrpcrestassert -32600 == -32603
test_sensitive_information_protectionmandatoryFAILEDjsonrpcrestFailed: SECURITY VIOLATION: Public Agent Card exposes sensitive information. Found 8 potential issues. A2A v0.3.0 Section 9.1 requires protection of s
test_message_sending_equivalencemandatoryFAILEDjsonrpcrestAssertionError: Message sending failed on all transports: ['HTTP/JSON-RPC'] assert 0 > 0 + where 0 = len([])
test_agent_card_access_equivalencemandatoryFAILEDjsonrpcrestAssertionError: Agent Card access failed on all transports assert 0 > 0 + where 0 = len([])
test_concurrent_operation_equivalencemandatoryFAILEDjsonrpcrestAssertionError: No concurrent operations succeeded across any transport assert 0 > 0 + where 0 = len([])
test_parallel_requestsqualityFAILEDjsonrpcrestAssertionError: All parallel requests failed - poor concurrency handling assert 0 > 0
test_rapid_sequential_requestsqualityFAILEDjsonrpcrestAssertionError: Too many failures: 0 out of 10 succeeded assert 0 > (10 * 0.8)
test_concurrent_operations_same_taskqualityFAILEDjsonrpcrestKeyError: 'task'
test_empty_arraysqualityFAILEDjsonrpcrestAssertionError: Should return InvalidParams error code assert -32001 == -32602
test_null_optional_fieldsqualityFAILEDjsonrpcrestKeyError: 'task'
test_unicode_and_special_charsqualityFAILEDjsonrpcrestKeyError: 'task'
test_boundary_valuesqualityFAILEDjsonrpcrestKeyError: 'task'
test_streaming_reconnection_simulationqualityFAILEDjsonrpcrestKeyError: 'task'
test_partial_update_recoveryqualityFAILEDjsonrpcrestKeyError: 'task'
test_task_state_transitionsqualityFAILEDjsonrpcrestKeyError: 'task'
test_task_cancel_state_handlingqualityFAILEDjsonrpcrestKeyError: 'task'
test_same_error_handling_invalid_paramstransport-equivalenceFAILEDcross-transportAssertionError: Error code mismatch for invalid params: jsonrpc=-32602 vs rest=-32001 assert -32001 == -32602
test_tasks_cancel_validmandatoryERRORjsonrpcrest
test_tasks_get_validmandatoryERRORjsonrpcrest
test_tasks_get_with_history_lengthmandatoryERRORjsonrpcrest

✅ Passing Tests (65)

TestCategoryStatusTransport
test_fetch_agent_card_successfeaturesPASSEDjsonrpcrest
test_fetch_agent_card_not_foundfeaturesPASSEDjsonrpcrest
test_fetch_agent_card_invalid_jsonfeaturesPASSEDjsonrpcrest
test_get_sut_rpc_endpointfeaturesPASSEDjsonrpcrest
test_get_capability_streamingfeaturesPASSEDjsonrpcrest
test_get_capability_push_notificationsfeaturesPASSEDjsonrpcrest
test_get_supported_modalitiesfeaturesPASSEDjsonrpcrest
test_get_authentication_schemesfeaturesPASSEDjsonrpcrest
test_invalid_file_partfeaturesPASSEDjsonrpcrest
test_very_large_messagefeaturesPASSEDjsonrpcrest
test_file_part_without_mimetypefeaturesPASSEDjsonrpcrest
test_reference_task_ids_invalidfeaturesPASSEDjsonrpcrest
test_security_scheme_structure_compliancemandatoryPASSEDjsonrpcrest
test_authentication_transport_consistencymandatoryPASSEDjsonrpcrest
test_security_error_response_compliancemandatoryPASSEDjsonrpcrest
test_authentication_scheme_consistencymandatoryPASSEDjsonrpcrest
test_a2a_error_code_coverage_summarymandatoryPASSEDjsonrpcrest
test_a2a_error_code_coverage_enhancedmandatoryPASSEDjsonrpcrest
test_rejects_malformed_jsonmandatoryPASSEDjsonrpc
test_rejects_invalid_json_rpc_requests[invalid_request0--32600]mandatoryPASSEDjsonrpc
test_rejects_invalid_json_rpc_requests[invalid_request1--32600]mandatoryPASSEDjsonrpc
test_rejects_invalid_json_rpc_requests[invalid_request2--32601]mandatoryPASSEDjsonrpc
test_rejects_invalid_json_rpc_requests[invalid_request3--32600]mandatoryPASSEDjsonrpc
test_rejects_invalid_json_rpc_requests[invalid_request4--32602]mandatoryPASSEDjsonrpc
test_rejects_unknown_methodmandatoryPASSEDjsonrpc
test_rejects_invalid_paramsmandatoryPASSEDjsonrpc
test_duplicate_request_idsmandatoryPASSEDjsonrpc
test_invalid_jsonrpc_versionmandatoryPASSEDjsonrpc
test_missing_method_fieldmandatoryPASSEDjsonrpc
test_raw_invalid_jsonmandatoryPASSEDjsonrpc
test_transport_specific_method_namingmandatoryPASSEDjsonrpcrest
test_transport_compliance_validationmandatoryPASSEDjsonrpcrest
test_required_method_availabilitymandatoryPASSEDjsonrpcrest
test_transport_specific_featuresmandatoryPASSEDjsonrpcrest
test_comprehensive_a2a_v030_compliancemandatoryPASSEDjsonrpcrest
test_agent_card_availablemandatoryPASSEDjsonrpcrest
test_mandatory_fields_presentmandatoryPASSEDjsonrpcrest
test_mandatory_field_typesmandatoryPASSEDjsonrpcrest
test_agent_card_mandatory_fieldsmandatoryPASSEDjsonrpcrest
test_agent_card_capabilities_mandatorymandatoryPASSEDjsonrpcrest
test_agent_card_skills_mandatorymandatoryPASSEDjsonrpcrest
test_agent_card_input_output_modes_mandatorymandatoryPASSEDjsonrpcrest
test_agent_card_basic_info_mandatorymandatoryPASSEDjsonrpcrest
test_tasks_cancel_nonexistentmandatoryPASSEDjsonrpcrest
test_tasks_get_nonexistentmandatoryPASSEDjsonrpcrest
test_invalid_method_error_validationmandatoryPASSEDjsonrpcrest
test_invalid_params_error_validationmandatoryPASSEDjsonrpcrest
test_nonexistent_resource_error_validationmandatoryPASSEDjsonrpcrest
test_error_consistency_across_methodsmandatoryPASSEDjsonrpcrest
test_error_response_completenessmandatoryPASSEDjsonrpcrest
test_public_agent_card_access_controlmandatoryPASSEDjsonrpcrest
test_authentication_scheme_validationmandatoryPASSEDjsonrpcrest
test_security_scheme_consistencymandatoryPASSEDjsonrpcrest
test_auth_required_state_supportmandatoryPASSEDjsonrpcrest
test_authentication_challenge_headersmandatoryPASSEDjsonrpcrest
test_error_handling_equivalencemandatoryPASSEDjsonrpcrest
test_performance_equivalencemandatoryPASSEDjsonrpcrest
test_very_long_stringqualityPASSEDjsonrpcrest
test_unexpected_json_typesqualityPASSEDjsonrpcrest
test_extra_fieldsqualityPASSEDjsonrpcrest
test_identical_functionality_message_sendtransport-equivalencePASSEDcross-transport
test_same_error_handling_task_not_foundtransport-equivalencePASSEDcross-transport
test_error_response_structure_equivalencetransport-equivalencePASSEDcross-transport
test_method_mapping_compliancetransport-equivalencePASSEDcross-transport
test_identical_functionality_message_streamtransport-equivalencePASSEDcross-transport

⏭️ Skipped (39)

TestCategoryStatusTransport
test_reference_task_ids_validfeaturesSKIPPEDjsonrpcrest
test_oauth2_metadata_url_validationmandatorySKIPPEDjsonrpcrest
test_mutual_tls_scheme_declarationmandatorySKIPPEDjsonrpcrest
test_push_notification_not_supported_error_32003mandatorySKIPPEDjsonrpc
test_unsupported_operation_error_32004mandatorySKIPPEDjsonrpcrest
test_content_type_not_supported_error_32005mandatorySKIPPEDjsonrpcrest
test_invalid_agent_response_error_32006mandatorySKIPPEDjsonrpcrest
test_unsupported_operation_error_32004_enhancedmandatorySKIPPEDjsonrpcrest
test_content_type_not_supported_error_32005_enhancedmandatorySKIPPEDjsonrpcrest
test_invalid_agent_response_error_32006_enhancedmandatorySKIPPEDjsonrpcrest
test_multi_transport_method_mappingmandatorySKIPPEDjsonrpcrest
test_certificate_chain_trust_validationmandatorySKIPPEDjsonrpcrest
test_hostname_verificationmandatorySKIPPEDjsonrpcrest
test_certificate_revocation_statusmandatorySKIPPEDjsonrpcrest
test_invalid_certificate_rejectionmandatorySKIPPEDjsonrpcrest
test_certificate_security_headersmandatorySKIPPEDjsonrpcrest
test_in_task_authentication_workflowmandatorySKIPPEDjsonrpcrest
test_invalid_authentication_handlingmandatorySKIPPEDjsonrpcrest
test_auth_state_transitionsmandatorySKIPPEDjsonrpcrest
test_tls_protocol_version_securitymandatorySKIPPEDjsonrpcrest
test_cipher_suite_security_analysismandatorySKIPPEDjsonrpcrest
test_certificate_chain_validationmandatorySKIPPEDjsonrpcrest
test_tls_security_featuresmandatorySKIPPEDjsonrpcrest
test_tls_implementation_best_practicesmandatorySKIPPEDjsonrpcrest
test_https_required_productionmandatorySKIPPEDjsonrpcrest
test_tls_certificate_validationmandatorySKIPPEDjsonrpcrest
test_tls_configuration_securitymandatorySKIPPEDjsonrpcrest
test_http_to_https_redirectmandatorySKIPPEDjsonrpcrest
test_task_retrieval_equivalencemandatorySKIPPEDjsonrpcrest
test_identical_functionality_tasks_gettransport-equivalenceSKIPPEDcross-transport
test_consistent_behavior_message_sendtransport-equivalenceSKIPPEDcross-transport
test_consistent_behavior_tasks_gettransport-equivalenceSKIPPEDcross-transport
test_identical_functionality_tasks_canceltransport-equivalenceSKIPPEDcross-transport
test_consistent_behavior_tasks_canceltransport-equivalenceSKIPPEDcross-transport
test_same_error_handling_method_not_foundtransport-equivalenceSKIPPEDcross-transport
test_same_error_handling_task_not_cancelabletransport-equivalenceSKIPPEDcross-transport
test_equivalent_authentication_agent_cardtransport-equivalenceSKIPPEDcross-transport
test_identical_functionality_tasks_resubscribetransport-equivalenceSKIPPEDcross-transport
test_streaming_response_equivalencetransport-equivalenceSKIPPEDcross-transport