Case
aiosendspin -> aiosendspin
Start the server first, then the client. The client advertises a listener, the server connects in, streams album artwork, disconnects, and the matrix compares the received bytes against the server's encoded artwork.
Server
aiosendspin
Client
aiosendspin
Status
Failed
Client summary shows zero artwork frames
Inspection
Summaries, logs, and builds
Matrix result
RAW{
"case_dir": "artifacts/results/data/macos__server-initiated-artwork__aiosendspin__to__aiosendspin",
"client_exit_code": 0,
"client_impl": "aiosendspin",
"reason": "Client summary shows zero artwork frames",
"scenario_id": "server-initiated-artwork",
"server_exit_code": 0,
"server_impl": "aiosendspin",
"status": "failed"
}Server summary (JSON)
RAW{
"artwork": {
"byte_count": 5533,
"channel": 0,
"encoded_sha256": "3ba7248e8b655fe0858c027053f0ef0a800d91ba87586c28f1d4cdad9f880ced",
"format": "jpeg",
"height": 256,
"source": "album",
"width": 256
},
"client": {
"active_roles": [],
"client_id": "WqUw4U14i-7fCBIw2EZN3KpZhY7mZApQmBLm8Bl6sGo",
"name": "aiosendspin-client",
"supported_roles": [
"artwork@v1"
]
},
"discovery_method": "registry_fallback",
"implementation": "aiosendspin",
"initiator_role": "server",
"peer_hello": {
"payload": {
"artwork@v1_support": {
"channels": [
{
"format": "jpeg",
"media_height": 256,
"media_width": 256,
"source": "album"
}
]
},
"name": "aiosendspin-client",
"supported_pair_methods": [
{
"method": "pairing_psk"
}
],
"supported_roles": [
"artwork@v1"
],
"trust_level": "none",
"unpaired_access": {
"enabled": false
}
},
"type": "client/hello"
},
"preferred_codec": "none",
"role": "server",
"scenario_id": "server-initiated-artwork",
"server_id": "vIftOph-17spzPAbFkYkY5TYNgKsxRjAXr7w3yiqvhg",
"server_name": "aiosendspin server",
"status": "ok"
}Server log
RAWINFO:aiosendspin.server.server:Starting Sendspin server on port 18975
INFO:aiosendspin.server.server:Sendspin server started successfully on 127.0.0.1:18975
WARNING:aiosendspin.server.server:No IP addresses available for mDNS advertising. Clients may not be able to discover this server. Consider specifying addresses manually via advertise_addresses.
{
"artwork": {
"byte_count": 5533,
"channel": 0,
"encoded_sha256": "3ba7248e8b655fe0858c027053f0ef0a800d91ba87586c28f1d4cdad9f880ced",
"format": "jpeg",
"height": 256,
"source": "album",
"width": 256
},
"client": {
"active_roles": [],
"client_id": "WqUw4U14i-7fCBIw2EZN3KpZhY7mZApQmBLm8Bl6sGo",
"name": "aiosendspin-client",
"supported_roles": [
"artwork@v1"
]
},
"discovery_method": "registry_fallback",
"implementation": "aiosendspin",
"initiator_role": "server",
"peer_hello": {
"payload": {
"artwork@v1_support": {
"channels": [
{
"format": "jpeg",
"media_height": 256,
"media_width": 256,
"source": "album"
}
]
},
"name": "aiosendspin-client",
"supported_pair_methods": [
{
"method": "pairing_psk"
}
],
"supported_roles": [
"artwork@v1"
],
"trust_level": "none",
"unpaired_access": {
"enabled": false
}
},
"type": "client/hello"
},
"preferred_codec": "none",
"role": "server",
"scenario_id": "server-initiated-artwork",
"server_id": "vIftOph-17spzPAbFkYkY5TYNgKsxRjAXr7w3yiqvhg",
"server_name": "aiosendspin server",
"status": "ok"
}
Client summary (JSON)
RAW{
"artwork": {
"byte_count": 0,
"channel": null,
"received_count": 0,
"received_sha256": null
},
"client_id": "WqUw4U14i-7fCBIw2EZN3KpZhY7mZApQmBLm8Bl6sGo",
"client_name": "aiosendspin-client",
"implementation": "aiosendspin",
"initiator_role": "server",
"peer_hello": null,
"preferred_codec": "none",
"role": "client",
"scenario_id": "server-initiated-artwork",
"server": null,
"status": "ok",
"stream": null
}Client log
RAWINFO:aiosendspin.client.listener:ClientListener started on port 19975, path /sendspin
INFO:aiohttp.access:127.0.0.1 [21/Jul/2026:05:30:13 +0000] "GET /sendspin HTTP/1.1" 101 0 "-" "Python/3.12 aiohttp/3.14.2"
INFO:aiosendspin.client.listener:ClientListener stopped
{
"artwork": {
"byte_count": 0,
"channel": null,
"received_count": 0,
"received_sha256": null
},
"client_id": "WqUw4U14i-7fCBIw2EZN3KpZhY7mZApQmBLm8Bl6sGo",
"client_name": "aiosendspin-client",
"implementation": "aiosendspin",
"initiator_role": "server",
"peer_hello": null,
"preferred_codec": "none",
"role": "client",
"scenario_id": "server-initiated-artwork",
"server": null,
"status": "ok",
"stream": null
}
Shared build log · python-adapters · built · 0.20s
RAWListing 'src'... Listing 'src/conformance'... Listing 'src/conformance/adapters'... Compiling 'src/conformance/adapters/__init__.py'... Compiling 'src/conformance/adapters/aiosendspin_client.py'... Compiling 'src/conformance/adapters/aiosendspin_server.py'... Compiling 'src/conformance/adapters/placeholder.py'... Compiling 'src/conformance/adapters/sendspin_jvm_client.py'... Compiling 'src/conformance/cli.py'... Compiling 'src/conformance/merge.py'... Compiling 'src/conformance/registry.py'... Listing 'src/sendspin_conformance.egg-info'... Listing 'scripts'... Compiling 'scripts/detect_regressions.py'... Compiling 'scripts/merge_results.py'... Compiling 'scripts/run_all.py'... Compiling 'scripts/setup_repositories.py'... Compiling 'scripts/setup_workspace.py'...