uploaded media msgtype #30

Open
opened 2026-09-13 02:15:34 +03:00 by wasilius · 5 comments
Member

Summary: no inline video player in any of the three clients; message shown as downloadable file in all three.

  1. uploaded test-video.mp4 (from assets) via Element file picker
    curl -s "https://dev1.bromal.im/_matrix/client/v3/rooms/$ROOM_ID/messages?dir=b&limit=5"
    -H "Authorization: Bearer $TOKEN"

Relevant event content:

{
"info": {
"size": 215955,
"mimetype": "video/mp4"
},
"body": "test-video.mp4",
"url": "mxc://dev1.bromal.im/iaxsa8t5Uo1km08TnIJIGP86rlvtssL0bdJc5XUAIEE",
"m.mentions": {},
"msgtype": "m.file"
}

  1. visually checked test-video.mp4 message in Element, Nheko, Cinny.
    Result: no inline video player in any of the three clients; message shown as downloadable file in all three.

  2. In addition uploaded test-audio-60s.ogg via Element file picker (not via voice recorder).
    Relevant event content:

{
"info": {
"size": 104735,
"mimetype": "application/ogg"
},
"body": "test-audio-60s.ogg",
"url": "mxc://dev1.bromal.im/1rWsztQndKRjwl2AkObAm4hMUWRfWGjfroFkBnRxJVE",
"m.mentions": {},
"msgtype": "m.file"
}

  1. And recorded a voice message via Element's built-in recorder.
    Relevant event content:

{
"info": {
"size": 30862,
"duration": 11067,
"mimetype": "audio/ogg"
},
"body": "Voice message",
"url": "mxc://dev1.bromal.im/q3FUkBbuqRxlpFfE7jGJBajnvJajn81OUli8hicoUhY",
"m.mentions": {},
"msgtype": "m.audio"
}

  1. Then visually checked test-audio-60s.ogg (uploaded, not recorded) message.
    Result: not separately screenshotted; msgtype in raw data is m.file.

Also visually checked the recorded voice message in all three clients.
Result: plays inline with play button in Element and Cinny; no play button/control shown in Nheko (it's a client's problem, not a server).

In conclusion, uploaded media files (video, audio) always saved with msgtype "m.file" instead of correct type.

When uploading a file via standard file picker, the resulting m.room.message event always has msgtype: "m.file", even though info.mimetype correctly reflects the actual type (e.g. video/mp4, application/ogg for a .ogg audio file). This causes clients to render these as generic downloadable files instead of inline video/audio players.

Contrast: voice messages recorded via the client's built-in recorder DO get the correct msgtype: "m.audio", suggesting the issue is specific to the general upload path, not voice-message-specific handling.

Summary: no inline video player in any of the three clients; message shown as downloadable file in all three. 1) uploaded test-video.mp4 (from assets) via Element file picker curl -s "https://dev1.bromal.im/_matrix/client/v3/rooms/$ROOM_ID/messages?dir=b&limit=5" \ -H "Authorization: Bearer $TOKEN" Relevant event content: { "info": { "size": 215955, "mimetype": "video/mp4" }, "body": "test-video.mp4", "url": "mxc://dev1.bromal.im/iaxsa8t5Uo1km08TnIJIGP86rlvtssL0bdJc5XUAIEE", "m.mentions": {}, **"msgtype": "m.file"** } 2) visually checked test-video.mp4 message in Element, Nheko, Cinny. Result: no inline video player in any of the three clients; message shown as downloadable file in all three. 3) In addition uploaded test-audio-60s.ogg via Element file picker (not via voice recorder). Relevant event content: { "info": { "size": 104735, "mimetype": "application/ogg" }, "body": "test-audio-60s.ogg", "url": "mxc://dev1.bromal.im/1rWsztQndKRjwl2AkObAm4hMUWRfWGjfroFkBnRxJVE", "m.mentions": {}, **"msgtype": "m.file"** } 4) And recorded a voice message via Element's built-in recorder. Relevant event content: { "info": { "size": 30862, "duration": 11067, "mimetype": "audio/ogg" }, "body": "Voice message", "url": "mxc://dev1.bromal.im/q3FUkBbuqRxlpFfE7jGJBajnvJajn81OUli8hicoUhY", "m.mentions": {}, **"msgtype": "m.audio"** } 5) Then visually checked test-audio-60s.ogg (uploaded, not recorded) message. Result: not separately screenshotted; msgtype in raw data is m.file. Also visually checked the recorded voice message in all three clients. Result: plays inline with play button in Element and Cinny; no play button/control shown in Nheko (it's a client's problem, not a server). In conclusion, uploaded media files (video, audio) always saved with msgtype "m.file" instead of correct type. When uploading a file via standard file picker, the resulting m.room.message event always has msgtype: "m.file", even though info.mimetype correctly reflects the actual type (e.g. video/mp4, application/ogg for a .ogg audio file). This causes clients to render these as generic downloadable files instead of inline video/audio players. Contrast: voice messages recorded via the client's built-in recorder DO get the correct msgtype: "m.audio", suggesting the issue is specific to the general upload path, not voice-message-specific handling.
Owner

Could you also provide the requests related to upload mp4 and ogg?

Could you also provide the requests related to upload `mp4` and `ogg`?
Author
Member

So I uploaded mp4 and ogg via client's UI, then:

curl -s "https://dev1.bromal.im/_matrix/client/v3/rooms/$ROOM_ID/messages?dir=b&limit=5"
-H "Authorization: Bearer $TOKEN" | python3 -m json.tool | grep -B 5 -A 15 "m.video"
[ble: exit 1]
pingwilap@archlinux cinny $

and then:

pingwilap@archlinux cinny $ curl -s "https://dev1.bromal.im/matrix/client/v3/rooms/$ROOM_ID/messages?dir=b&limit=5"
-H "Authorization: Bearer $TOKEN" | python3 -m json.tool
{
"start": "924yg4K0zR",
"state": [
{
"type": "m.room.create",
"unsigned": {
"age": 61549449
},
"content": {
"room_version": "10",
"creator": "@test_user_1:dev1.bromal.im",
"m.federate": true
},
"room_id": "!iLMEKcwGK0NNnmXBQvs5anttEij45RiQgSiQhmNL0jE:dev1.bromal.im",
"event_id": "$ekhuTywn803NcbliCPAryayZ2p3g/m0NnwQB2Fa7r10",
"state_key": "",
"origin_server_ts": 1789165362752,
"sender": "@test_user_1:dev1.bromal.im"
},
{
"type": "m.room.member",
"unsigned": {
"age": 61549347
},
"content": {
"membership": "join",
"is_direct": false
},
"room_id": "!iLMEKcwGK0NNnmXBQvs5anttEij45RiQgSiQhmNL0jE:dev1.bromal.im",
"event_id": "$XHXiUDw1SISJ9T40Ein1b0PRDD2yzMCxLn3xAiWmhxY",
"state_key": "@test_user_1:dev1.bromal.im",
"origin_server_ts": 1789165362854,
"sender": "@test_user_1:dev1.bromal.im"
},
{
"type": "m.room.power_levels",
"unsigned": {
"age": 61549284
},
"content": {
"events": {
"m.room.avatar": 50,
"m.room.canonical_alias": 50,
"m.room.encryption": 100,
"m.room.history_visibility": 100,
"m.room.name": 50,
"m.room.power_levels": 100,
"m.room.server_acl": 100,
"m.room.tombstone": 100,
"org.matrix.msc3401.call.member": 0
},
"users": {
"@test_user_1:dev1.bromal.im": 100
},
"redact": 50,
"invite": 0,
"ban": 50,
"kick": 50,
"events_default": 0,
"state_default": 50,
"users_default": 0
},
"room_id": "!iLMEKcwGK0NNnmXBQvs5anttEij45RiQgSiQhmNL0jE:dev1.bromal.im",
"event_id": "$RDIJiIx9lSI7KnufddmX8rmZxiNMWlBesoO3qklMOeM",
"state_key": "",
"origin_server_ts": 1789165362917,
"sender": "@test_user_1:dev1.bromal.im"
},
{
"type": "m.room.join_rules",
"unsigned": {
"age": 61549204
},
"content": {
"allow": [],
"join_rule": "invite"
},
"room_id": "!iLMEKcwGK0NNnmXBQvs5anttEij45RiQgSiQhmNL0jE:dev1.bromal.im",
"event_id": "$GX1b+XdV2igy+Zn0pG3zBZKNVx5N2hnvhfgWbz5VflI",
"state_key": "",
"origin_server_ts": 1789165362997,
"sender": "@test_user_1:dev1.bromal.im"
},
{
"type": "m.room.history_visibility",
"unsigned": {
"age": 61549180
},
"content": {
"history_visibility": "invited"
},
"room_id": "!iLMEKcwGK0NNnmXBQvs5anttEij45RiQgSiQhmNL0jE:dev1.bromal.im",
"event_id": "$WoEM5+c22O2MQ4TrhmIWDaJV8KbNxALbjY7CSm6vuE4",
"state_key": "",
"origin_server_ts": 1789165363021,
"sender": "@test_user_1:dev1.bromal.im"
},
{
"type": "m.room.guest_access",
"unsigned": {
"age": 61549156
},
"content": {
"guest_access": "can_join"
},
"room_id": "!iLMEKcwGK0NNnmXBQvs5anttEij45RiQgSiQhmNL0jE:dev1.bromal.im",
"event_id": "$1Eo/bNMdog3TAO9QZdOuZG+5wXpOqRkzWljUiFXpHdE",
"state_key": "",
"origin_server_ts": 1789165363045,
"sender": "@test_user_1:dev1.bromal.im"
},
{
"type": "m.room.name",
"unsigned": {
"age": 61549134
},
"content": {
"name": "QA_test-room"
},
"room_id": "!iLMEKcwGK0NNnmXBQvs5anttEij45RiQgSiQhmNL0jE:dev1.bromal.im",
"event_id": "$Ygx0qP7tfbjJFFi9ncrookjK3yZl3jeDulNtWoKvjx8",
"state_key": "",
"origin_server_ts": 1789165363067,
"sender": "@test_user_1:dev1.bromal.im"
},
{
"type": "m.room.member",
"unsigned": {
"age": 61503822
},
"content": {
"membership": "join",
"is_direct": true
},
"room_id": "!iLMEKcwGK0NNnmXBQvs5anttEij45RiQgSiQhmNL0jE:dev1.bromal.im",
"event_id": "$M3xv4MTD7ab7bDATu4w3mwWY1ajFmewPQ1Fw37Fk4vE",
"state_key": "@test_user_2:dev1.bromal.im",
"origin_server_ts": 1789165408379,
"sender": "@test_user_2:dev1.bromal.im"
},
{
"type": "m.room.member",
"unsigned": {
"age": 61463973
},
"content": {
"membership": "join",
"is_direct": true
},
"room_id": "!iLMEKcwGK0NNnmXBQvs5anttEij45RiQgSiQhmNL0jE:dev1.bromal.im",
"event_id": "$D01SLtL2rICRzoHOHgmL6vmTqDk+P5hUiBGyDcLSOs4",
"state_key": "@test_user_3:dev1.bromal.im",
"origin_server_ts": 1789165448228,
"sender": "@test_user_3:dev1.bromal.im"
}
],
"end": "Q7zrALKE9o",
"chunk": [
{
"type": "m.room.message",
"unsigned": {
"age": 44374,
"transaction_id": "m1789226867671.7"
},
"content": {
"info": {
"size": 215955,
"mimetype": "video/mp4"
},
"body": "test-video.mp4",
"url": "mxc://dev1.bromal.im/iaxsa8t5Uo1km08TnIJIGP86rlvtssL0bdJc5XUAIEE",
"m.mentions": {},
"msgtype": "m.file"
},
"room_id": "!iLMEKcwGK0NNnmXBQvs5anttEij45RiQgSiQhmNL0jE:dev1.bromal.im",
"event_id": "$S7WoGakZiC4QMsD/HNM4oPg4xUSwsjSq1NclWPWLqlY",
"origin_server_ts": 1789226867827,
"sender": "@test_user_1:dev1.bromal.im"
},
{
"type": "m.room.message",
"unsigned": {
"age": 395593,
"transaction_id": "m1789226516381.6"
},
"content": {
"info": {
"size": 30862,
"duration": 11067,
"mimetype": "audio/ogg"
},
"body": "Voice message",
"url": "mxc://dev1.bromal.im/q3FUkBbuqRxlpFfE7jGJBajnvJajn81OUli8hicoUhY",
"m.mentions": {},
"msgtype": "m.audio"
},
"room_id": "!iLMEKcwGK0NNnmXBQvs5anttEij45RiQgSiQhmNL0jE:dev1.bromal.im",
"event_id": "$oTGeUyAlxsTWw7q3RjkE9orMtSuPXxdhiM6aDmhrpNE",
"origin_server_ts": 1789226516608,
"sender": "@test_user_1:dev1.bromal.im"
},
{
"type": "m.room.message",
"unsigned": {
"age": 451388,
"transaction_id": "m1789226460680.5"
},
"content": {
"info": {
"size": 104735,
"mimetype": "application/ogg"
},
"body": "test-audio-60s.ogg",
"url": "mxc://dev1.bromal.im/1rWsztQndKRjwl2AkObAm4hMUWRfWGjfroFkBnRxJVE",
"m.mentions": {},
"msgtype": "m.file"
},
"room_id": "!iLMEKcwGK0NNnmXBQvs5anttEij45RiQgSiQhmNL0jE:dev1.bromal.im",
"event_id": "$NkQZuftT6hgOmlbo7mFK+CcRF3GxUImfd3ssInyqSKc",
"origin_server_ts": 1789226460813,
"sender": "@test_user_1:dev1.bromal.im"
},
{
"type": "m.room.message",
"unsigned": {
"age": 607768,
"transaction_id": "m1789226304277.4"
},
"content": {
"info": {
"size": 215955,
"mimetype": "video/mp4"
},
"body": "test-video.mp4",
"url": "mxc://dev1.bromal.im/rdJmySkkfTXrQC57XHMxFdJ59QigDF2axnKAN1cWbo8",
"m.mentions": {},
"msgtype": "m.file"
},
"room_id": "!iLMEKcwGK0NNnmXBQvs5anttEij45RiQgSiQhmNL0jE:dev1.bromal.im",
"event_id": "$wXzwkH6cUIkLmPqGPOPzfhg9YP3r9absFCPmAH+cjfI",
"origin_server_ts": 1789226304433,
"sender": "@test_user_1:dev1.bromal.im"
},
{
"type": "m.room.message",
"unsigned": {
"age": 706489,
"transaction_id": "m1789226205558.3"
},
"content": {
"info": {
"size": 476684,
"mimetype": "application/epub+zip"
},
"body": "Aleko_Konstantinov
-Baj_Ganxo-_1763-b.epub",
"url": "mxc://dev1.bromal.im/UN3mxn2TyaeZ7pEvYUfYE3gyXKjwrQ83378xYdt7vSs",
"m.mentions": {},
"msgtype": "m.file"
},
"room_id": "!iLMEKcwGK0NNnmXBQvs5anttEij45RiQgSiQhmNL0jE:dev1.bromal.im",
"event_id": "$Uq0zyutkbByfu3a2eLH8AiLbikl6CLLpjCxJ7Uf2nBg",
"origin_server_ts": 1789226205712,
"sender": "@test_user_1:dev1.bromal.im"
}
]
}

Simultaneously in Element and other clients wasn't video/audio preview.

So I uploaded mp4 and ogg via client's UI, then: curl -s "https://dev1.bromal.im/_matrix/client/v3/rooms/$ROOM_ID/messages?dir=b&limit=5" \ -H "Authorization: Bearer $TOKEN" | python3 -m json.tool | grep -B 5 -A 15 "m.video" [ble: exit 1] pingwilap@archlinux cinny $ and then: pingwilap@archlinux cinny $ curl -s "https://dev1.bromal.im/_matrix/client/v3/rooms/$ROOM_ID/messages?dir=b&limit=5" \ -H "Authorization: Bearer $TOKEN" | python3 -m json.tool { "start": "924yg4K0zR", "state": [ { "type": "m.room.create", "unsigned": { "age": 61549449 }, "content": { "room_version": "10", "creator": "@test_user_1:dev1.bromal.im", "m.federate": true }, "room_id": "!iLMEKcwGK0NNnmXBQvs5anttEij45RiQgSiQhmNL0jE:dev1.bromal.im", "event_id": "$ekhuTywn803NcbliCPAryayZ2p3g/m0NnwQB2Fa7r10", "state_key": "", "origin_server_ts": 1789165362752, "sender": "@test_user_1:dev1.bromal.im" }, { "type": "m.room.member", "unsigned": { "age": 61549347 }, "content": { "membership": "join", "is_direct": false }, "room_id": "!iLMEKcwGK0NNnmXBQvs5anttEij45RiQgSiQhmNL0jE:dev1.bromal.im", "event_id": "$XHXiUDw1SISJ9T40Ein1b0PRDD2yzMCxLn3xAiWmhxY", "state_key": "@test_user_1:dev1.bromal.im", "origin_server_ts": 1789165362854, "sender": "@test_user_1:dev1.bromal.im" }, { "type": "m.room.power_levels", "unsigned": { "age": 61549284 }, "content": { "events": { "m.room.avatar": 50, "m.room.canonical_alias": 50, "m.room.encryption": 100, "m.room.history_visibility": 100, "m.room.name": 50, "m.room.power_levels": 100, "m.room.server_acl": 100, "m.room.tombstone": 100, "org.matrix.msc3401.call.member": 0 }, "users": { "@test_user_1:dev1.bromal.im": 100 }, "redact": 50, "invite": 0, "ban": 50, "kick": 50, "events_default": 0, "state_default": 50, "users_default": 0 }, "room_id": "!iLMEKcwGK0NNnmXBQvs5anttEij45RiQgSiQhmNL0jE:dev1.bromal.im", "event_id": "$RDIJiIx9lSI7KnufddmX8rmZxiNMWlBesoO3qklMOeM", "state_key": "", "origin_server_ts": 1789165362917, "sender": "@test_user_1:dev1.bromal.im" }, { "type": "m.room.join_rules", "unsigned": { "age": 61549204 }, "content": { "allow": [], "join_rule": "invite" }, "room_id": "!iLMEKcwGK0NNnmXBQvs5anttEij45RiQgSiQhmNL0jE:dev1.bromal.im", "event_id": "$GX1b+XdV2igy+Zn0pG3zBZKNVx5N2hnvhfgWbz5VflI", "state_key": "", "origin_server_ts": 1789165362997, "sender": "@test_user_1:dev1.bromal.im" }, { "type": "m.room.history_visibility", "unsigned": { "age": 61549180 }, "content": { "history_visibility": "invited" }, "room_id": "!iLMEKcwGK0NNnmXBQvs5anttEij45RiQgSiQhmNL0jE:dev1.bromal.im", "event_id": "$WoEM5+c22O2MQ4TrhmIWDaJV8KbNxALbjY7CSm6vuE4", "state_key": "", "origin_server_ts": 1789165363021, "sender": "@test_user_1:dev1.bromal.im" }, { "type": "m.room.guest_access", "unsigned": { "age": 61549156 }, "content": { "guest_access": "can_join" }, "room_id": "!iLMEKcwGK0NNnmXBQvs5anttEij45RiQgSiQhmNL0jE:dev1.bromal.im", "event_id": "$1Eo/bNMdog3TAO9QZdOuZG+5wXpOqRkzWljUiFXpHdE", "state_key": "", "origin_server_ts": 1789165363045, "sender": "@test_user_1:dev1.bromal.im" }, { "type": "m.room.name", "unsigned": { "age": 61549134 }, "content": { "name": "QA_test-room" }, "room_id": "!iLMEKcwGK0NNnmXBQvs5anttEij45RiQgSiQhmNL0jE:dev1.bromal.im", "event_id": "$Ygx0qP7tfbjJFFi9ncrookjK3yZl3jeDulNtWoKvjx8", "state_key": "", "origin_server_ts": 1789165363067, "sender": "@test_user_1:dev1.bromal.im" }, { "type": "m.room.member", "unsigned": { "age": 61503822 }, "content": { "membership": "join", "is_direct": true }, "room_id": "!iLMEKcwGK0NNnmXBQvs5anttEij45RiQgSiQhmNL0jE:dev1.bromal.im", "event_id": "$M3xv4MTD7ab7bDATu4w3mwWY1ajFmewPQ1Fw37Fk4vE", "state_key": "@test_user_2:dev1.bromal.im", "origin_server_ts": 1789165408379, "sender": "@test_user_2:dev1.bromal.im" }, { "type": "m.room.member", "unsigned": { "age": 61463973 }, "content": { "membership": "join", "is_direct": true }, "room_id": "!iLMEKcwGK0NNnmXBQvs5anttEij45RiQgSiQhmNL0jE:dev1.bromal.im", "event_id": "$D01SLtL2rICRzoHOHgmL6vmTqDk+P5hUiBGyDcLSOs4", "state_key": "@test_user_3:dev1.bromal.im", "origin_server_ts": 1789165448228, "sender": "@test_user_3:dev1.bromal.im" } ], "end": "Q7zrALKE9o", "chunk": [ { "type": "m.room.message", "unsigned": { "age": 44374, "transaction_id": "m1789226867671.7" }, "content": { "info": { "size": 215955, "mimetype": "video/mp4" }, "body": "test-video.mp4", "url": "mxc://dev1.bromal.im/iaxsa8t5Uo1km08TnIJIGP86rlvtssL0bdJc5XUAIEE", "m.mentions": {}, "msgtype": "m.file" }, "room_id": "!iLMEKcwGK0NNnmXBQvs5anttEij45RiQgSiQhmNL0jE:dev1.bromal.im", "event_id": "$S7WoGakZiC4QMsD/HNM4oPg4xUSwsjSq1NclWPWLqlY", "origin_server_ts": 1789226867827, "sender": "@test_user_1:dev1.bromal.im" }, { "type": "m.room.message", "unsigned": { "age": 395593, "transaction_id": "m1789226516381.6" }, "content": { "info": { "size": 30862, "duration": 11067, "mimetype": "audio/ogg" }, "body": "Voice message", "url": "mxc://dev1.bromal.im/q3FUkBbuqRxlpFfE7jGJBajnvJajn81OUli8hicoUhY", "m.mentions": {}, "msgtype": "m.audio" }, "room_id": "!iLMEKcwGK0NNnmXBQvs5anttEij45RiQgSiQhmNL0jE:dev1.bromal.im", "event_id": "$oTGeUyAlxsTWw7q3RjkE9orMtSuPXxdhiM6aDmhrpNE", "origin_server_ts": 1789226516608, "sender": "@test_user_1:dev1.bromal.im" }, { "type": "m.room.message", "unsigned": { "age": 451388, "transaction_id": "m1789226460680.5" }, "content": { "info": { "size": 104735, "mimetype": "application/ogg" }, "body": "test-audio-60s.ogg", "url": "mxc://dev1.bromal.im/1rWsztQndKRjwl2AkObAm4hMUWRfWGjfroFkBnRxJVE", "m.mentions": {}, "msgtype": "m.file" }, "room_id": "!iLMEKcwGK0NNnmXBQvs5anttEij45RiQgSiQhmNL0jE:dev1.bromal.im", "event_id": "$NkQZuftT6hgOmlbo7mFK+CcRF3GxUImfd3ssInyqSKc", "origin_server_ts": 1789226460813, "sender": "@test_user_1:dev1.bromal.im" }, { "type": "m.room.message", "unsigned": { "age": 607768, "transaction_id": "m1789226304277.4" }, "content": { "info": { "size": 215955, "mimetype": "video/mp4" }, "body": "test-video.mp4", "url": "mxc://dev1.bromal.im/rdJmySkkfTXrQC57XHMxFdJ59QigDF2axnKAN1cWbo8", "m.mentions": {}, "msgtype": "m.file" }, "room_id": "!iLMEKcwGK0NNnmXBQvs5anttEij45RiQgSiQhmNL0jE:dev1.bromal.im", "event_id": "$wXzwkH6cUIkLmPqGPOPzfhg9YP3r9absFCPmAH+cjfI", "origin_server_ts": 1789226304433, "sender": "@test_user_1:dev1.bromal.im" }, { "type": "m.room.message", "unsigned": { "age": 706489, "transaction_id": "m1789226205558.3" }, "content": { "info": { "size": 476684, "mimetype": "application/epub+zip" }, "body": "Aleko_Konstantinov_-_Baj_Ganxo_-_1763-b.epub", "url": "mxc://dev1.bromal.im/UN3mxn2TyaeZ7pEvYUfYE3gyXKjwrQ83378xYdt7vSs", "m.mentions": {}, "msgtype": "m.file" }, "room_id": "!iLMEKcwGK0NNnmXBQvs5anttEij45RiQgSiQhmNL0jE:dev1.bromal.im", "event_id": "$Uq0zyutkbByfu3a2eLH8AiLbikl6CLLpjCxJ7Uf2nBg", "origin_server_ts": 1789226205712, "sender": "@test_user_1:dev1.bromal.im" } ] } Simultaneously in Element and other clients wasn't video/audio preview.
Owner

So I uploaded mp4 and ogg via client's UI

I meant those requests which were used by clients to upload media.

> So I uploaded mp4 and ogg via client's UI I meant those requests which were used by clients to upload media.
Author
Member

Room ID: !iLMEKcwGK0NNnmXBQvs5anttEij45RiQgSiQhmNL0jE:dev1.bromal.im
Event ID: $wXzwkH6cUIkLmPqGPOPzfhg9YP3r9absFCPmAH+cjfI

{
"type": "m.room.message",
"unsigned": {
"age": 100864407,
"transaction_id": "m1789226304277.4"
},
"content": {
"info": {
"size": 215955,
"mimetype": "video/mp4"
},
"body": "test-video.mp4",
"url": "mxc://dev1.bromal.im/rdJmySkkfTXrQC57XHMxFdJ59QigDF2axnKAN1cWbo8",
"m.mentions": {},
"msgtype": "m.file"
},
"event_id": "$wXzwkH6cUIkLmPqGPOPzfhg9YP3r9absFCPmAH+cjfI",
"origin_server_ts": 1789226304433,
"sender": "@test_user_1:dev1.bromal.im",
"room_id": "!iLMEKcwGK0NNnmXBQvs5anttEij45RiQgSiQhmNL0jE:dev1.bromal.im"
}

and

Event ID: $NkQZuftT6hgOmlbo7mFK+CcRF3GxUImfd3ssInyqSKc

{
"type": "m.room.message",
"unsigned": {
"age": 100707977,
"transaction_id": "m1789226460680.5"
},
"content": {
"info": {
"size": 104735,
"mimetype": "application/ogg"
},
"body": "test-audio-60s.ogg",
"url": "mxc://dev1.bromal.im/1rWsztQndKRjwl2AkObAm4hMUWRfWGjfroFkBnRxJVE",
"m.mentions": {},
"msgtype": "m.file"
},
"event_id": "$NkQZuftT6hgOmlbo7mFK+CcRF3GxUImfd3ssInyqSKc",
"origin_server_ts": 1789226460813,
"sender": "@test_user_1:dev1.bromal.im",
"room_id": "!iLMEKcwGK0NNnmXBQvs5anttEij45RiQgSiQhmNL0jE:dev1.bromal.im"
}

Browser console:

Can't add room to skiplist: !MyCL3nLYtg3PNefTtom4meqFuVzGSxJ3p7bnaHzyrog:dev1.bromal.im is already in the skiplist! rageshake.ts:69:17
Can't add room to skiplist: !iLMEKcwGK0NNnmXBQvs5anttEij45RiQgSiQhmNL0jE:dev1.bromal.im is already in the skiplist! rageshake.ts:69:17
Failed to process outgoing request 0: M_UNRECOGNIZED: MatrixError: [404] not implemented (https://dev1.bromal.im/_matrix/client/v3/keys/upload) rageshake.ts:69:17
Failed to process outgoing request 1: M_UNRECOGNIZED: MatrixError: [404] not implemented (https://dev1.bromal.im/_matrix/client/v3/keys/query) rageshake.ts:69:17
Failed to process outgoing request 0: M_UNRECOGNIZED: MatrixError: [404] not implemented (https://dev1.bromal.im/_matrix/client/v3/keys/upload) rageshake.ts:69:17
Failed to process outgoing request 1: M_UNRECOGNIZED: MatrixError: [404] not implemented (https://dev1.bromal.im/_matrix/client/v3/keys/query) rageshake.ts:69:17
Failed to process outgoing request 0: M_UNRECOGNIZED: MatrixError: [404] not implemented (https://dev1.bromal.im/_matrix/client/v3/keys/upload) rageshake.ts:69:17
Failed to process outgoing request 1: M_UNRECOGNIZED: MatrixError: [404] not implemented (https://dev1.bromal.im/_matrix/client/v3/keys/query) rageshake.ts:69:17
Failed to process outgoing request 0: M_UNRECOGNIZED: MatrixError: [404] not implemented (https://dev1.bromal.im/_matrix/client/v3/keys/upload) rageshake.ts:69:17
Failed to process outgoing request 1: M_UNRECOGNIZED: MatrixError: [404] not implemented (https://dev1.bromal.im/_matrix/client/v3/keys/query) rageshake.ts:69:17
Failed to process outgoing request 0: M_UNRECOGNIZED: MatrixError: [404] not implemented (https://dev1.bromal.im/_matrix/client/v3/keys/upload) rageshake.ts:69:17
Failed to process outgoing request 1: M_UNRECOGNIZED: MatrixError: [404] not implemented (https://dev1.bromal.im/_matrix/client/v3/keys/query) rageshake.ts:69:17
Failed to process outgoing request 0: M_UNRECOGNIZED: MatrixError: [404] not implemented (https://dev1.bromal.im/_matrix/client/v3/keys/upload) rageshake.ts:69:17
Failed to process outgoing request 1: M_UNRECOGNIZED: MatrixError: [404] not implemented (https://dev1.bromal.im/_matrix/client/v3/keys/query) rageshake.ts:69:17
Failed to process outgoing request 0: M_UNRECOGNIZED: MatrixError: [404] not implemented (https://dev1.bromal.im/_matrix/client/v3/keys/upload) rageshake.ts:69:17
Failed to process outgoing request 1: M_UNRECOGNIZED: MatrixError: [404] not implemented (https://dev1.bromal.im/_matrix/client/v3/keys/query) rageshake.ts:69:17
Failed to process outgoing request 0: M_UNRECOGNIZED: MatrixError: [404] not implemented (https://dev1.bromal.im/_matrix/client/v3/keys/upload) rageshake.ts:69:17
Failed to process outgoing request 1: M_UNRECOGNIZED: MatrixError: [404] not implemented (https://dev1.bromal.im/_matrix/client/v3/keys/query) rageshake.ts:69:17
Failed to process outgoing request 0: M_UNRECOGNIZED: MatrixError: [404] not implemented (https://dev1.bromal.im/_matrix/client/v3/keys/upload) rageshake.ts:69:17
Failed to process outgoing request 1: M_UNRECOGNIZED: MatrixError: [404] not implemented (https://dev1.bromal.im/_matrix/client/v3/keys/query) rageshake.ts:69:17
Failed to process outgoing request 0: M_UNRECOGNIZED: MatrixError: [404] not implemented (https://dev1.bromal.im/_matrix/client/v3/keys/upload) rageshake.ts:69:17
Failed to process outgoing request 1: M_UNRECOGNIZED: MatrixError: [404] not implemented (https://dev1.bromal.im/_matrix/client/v3/keys/query) rageshake.ts:69:17
Failed to process outgoing request 0: M_UNRECOGNIZED: MatrixError: [404] not implemented (https://dev1.bromal.im/_matrix/client/v3/keys/upload) rageshake.ts:69:17
Failed to process outgoing request 1: M_UNRECOGNIZED: MatrixError: [404] not implemented (https://dev1.bromal.im/_matrix/client/v3/keys/query) rageshake.ts:69:17
Failed to process outgoing request 0: M_UNRECOGNIZED: MatrixError: [404] not implemented (https://dev1.bromal.im/_matrix/client/v3/keys/upload) rageshake.ts:69:17
Failed to process outgoing request 1: M_UNRECOGNIZED: MatrixError: [404] not implemented (https://dev1.bromal.im/_matrix/client/v3/keys/query) rageshake.ts:69:17
Failed to process outgoing request 0: M_UNRECOGNIZED: MatrixError: [404] not implemented (https://dev1.bromal.im/_matrix/client/v3/keys/upload) rageshake.ts:69:17
Failed to process outgoing request 1: M_UNRECOGNIZED: MatrixError: [404] not implemented (https://dev1.bromal.im/_matrix/client/v3/keys/query) rageshake.ts:69:17
Failed to process outgoing request 0: M_UNRECOGNIZED: MatrixError: [404] not implemented (https://dev1.bromal.im/_matrix/client/v3/keys/upload) rageshake.ts:69:17
Failed to process outgoing request 1: M_UNRECOGNIZED: MatrixError: [404] not implemented (https://dev1.bromal.im/_matrix/client/v3/keys/query) rageshake.ts:69:17

XHR POST
https://dev1.bromal.im/_matrix/client/v3/keys/upload
[HTTP/1.1 404 Not Found 119ms]
Failed to process outgoing request 0: M_UNRECOGNIZED: MatrixError: [404] not implemented (https://dev1.bromal.im/_matrix/client/v3/keys/upload) rageshake.ts:69:17
XHR POST
https://dev1.bromal.im/_matrix/client/v3/keys/query
[HTTP/1.1 404 Not Found 39ms]
Failed to process outgoing request 1: M_UNRECOGNIZED: MatrixError: [404] not implemented (https://dev1.bromal.im/_matrix/client/v3/keys/query) rageshake.ts:69:17
XHR POST
https://dev1.bromal.im/_matrix/client/v3/keys/upload
[HTTP/1.1 404 Not Found 116ms]
Failed to process outgoing request 0: M_UNRECOGNIZED: MatrixError: [404] not implemented (https://dev1.bromal.im/_matrix/client/v3/keys/upload) rageshake.ts:69:17
XHR POST
https://dev1.bromal.im/_matrix/client/v3/keys/query
[HTTP/1.1 404 Not Found 33ms]
Failed to process outgoing request 1: M_UNRECOGNIZED: MatrixError: [404] not implemented (https://dev1.bromal.im/_matrix/client/v3/keys/query) rageshake.ts:69:17
XHR POST
https://dev1.bromal.im/_matrix/client/v3/keys/upload
[HTTP/1.1 404 Not Found 121ms]
Failed to process outgoing request 0: M_UNRECOGNIZED: MatrixError: [404] not implemented (https://dev1.bromal.im/_matrix/client/v3/keys/upload) rageshake.ts:69:17
XHR POST
https://dev1.bromal.im/_matrix/client/v3/keys/query
[HTTP/1.1 404 Not Found 39ms]
Failed to process outgoing request 1: M_UNRECOGNIZED: MatrixError: [404] not implemented (https://dev1.bromal.im/_matrix/client/v3/keys/query) rageshake.ts:69:17
XHR POST
https://dev1.bromal.im/_matrix/client/v3/keys/upload
[HTTP/1.1 404 Not Found 118ms]
Failed to process outgoing request 0: M_UNRECOGNIZED: MatrixError: [404] not implemented (https://dev1.bromal.im/_matrix/client/v3/keys/upload) rageshake.ts:69:17
XHR POST
https://dev1.bromal.im/_matrix/client/v3/keys/query
[HTTP/1.1 404 Not Found 41ms]
Failed to process outgoing request 1: M_UNRECOGNIZED: MatrixError: [404] not implemented (https://dev1.bromal.im/_matrix/client/v3/keys/query)

But it isn't related to this issue, maybe I need to repeat this test for reproduce this issue again.

Room ID: !iLMEKcwGK0NNnmXBQvs5anttEij45RiQgSiQhmNL0jE:dev1.bromal.im Event ID: $wXzwkH6cUIkLmPqGPOPzfhg9YP3r9absFCPmAH+cjfI { "type": "m.room.message", "unsigned": { "age": 100864407, "transaction_id": "m1789226304277.4" }, "content": { "info": { "size": 215955, "mimetype": "video/mp4" }, "body": "test-video.mp4", "url": "mxc://dev1.bromal.im/rdJmySkkfTXrQC57XHMxFdJ59QigDF2axnKAN1cWbo8", "m.mentions": {}, "msgtype": "m.file" }, "event_id": "$wXzwkH6cUIkLmPqGPOPzfhg9YP3r9absFCPmAH+cjfI", "origin_server_ts": 1789226304433, "sender": "@test_user_1:dev1.bromal.im", "room_id": "!iLMEKcwGK0NNnmXBQvs5anttEij45RiQgSiQhmNL0jE:dev1.bromal.im" } and Event ID: $NkQZuftT6hgOmlbo7mFK+CcRF3GxUImfd3ssInyqSKc { "type": "m.room.message", "unsigned": { "age": 100707977, "transaction_id": "m1789226460680.5" }, "content": { "info": { "size": 104735, "mimetype": "application/ogg" }, "body": "test-audio-60s.ogg", "url": "mxc://dev1.bromal.im/1rWsztQndKRjwl2AkObAm4hMUWRfWGjfroFkBnRxJVE", "m.mentions": {}, "msgtype": "m.file" }, "event_id": "$NkQZuftT6hgOmlbo7mFK+CcRF3GxUImfd3ssInyqSKc", "origin_server_ts": 1789226460813, "sender": "@test_user_1:dev1.bromal.im", "room_id": "!iLMEKcwGK0NNnmXBQvs5anttEij45RiQgSiQhmNL0jE:dev1.bromal.im" } Browser console: Can't add room to skiplist: !MyCL3nLYtg3PNefTtom4meqFuVzGSxJ3p7bnaHzyrog:dev1.bromal.im is already in the skiplist! rageshake.ts:69:17 Can't add room to skiplist: !iLMEKcwGK0NNnmXBQvs5anttEij45RiQgSiQhmNL0jE:dev1.bromal.im is already in the skiplist! rageshake.ts:69:17 Failed to process outgoing request 0: M_UNRECOGNIZED: MatrixError: [404] not implemented (https://dev1.bromal.im/_matrix/client/v3/keys/upload) rageshake.ts:69:17 Failed to process outgoing request 1: M_UNRECOGNIZED: MatrixError: [404] not implemented (https://dev1.bromal.im/_matrix/client/v3/keys/query) rageshake.ts:69:17 Failed to process outgoing request 0: M_UNRECOGNIZED: MatrixError: [404] not implemented (https://dev1.bromal.im/_matrix/client/v3/keys/upload) rageshake.ts:69:17 Failed to process outgoing request 1: M_UNRECOGNIZED: MatrixError: [404] not implemented (https://dev1.bromal.im/_matrix/client/v3/keys/query) rageshake.ts:69:17 Failed to process outgoing request 0: M_UNRECOGNIZED: MatrixError: [404] not implemented (https://dev1.bromal.im/_matrix/client/v3/keys/upload) rageshake.ts:69:17 Failed to process outgoing request 1: M_UNRECOGNIZED: MatrixError: [404] not implemented (https://dev1.bromal.im/_matrix/client/v3/keys/query) rageshake.ts:69:17 Failed to process outgoing request 0: M_UNRECOGNIZED: MatrixError: [404] not implemented (https://dev1.bromal.im/_matrix/client/v3/keys/upload) rageshake.ts:69:17 Failed to process outgoing request 1: M_UNRECOGNIZED: MatrixError: [404] not implemented (https://dev1.bromal.im/_matrix/client/v3/keys/query) rageshake.ts:69:17 Failed to process outgoing request 0: M_UNRECOGNIZED: MatrixError: [404] not implemented (https://dev1.bromal.im/_matrix/client/v3/keys/upload) rageshake.ts:69:17 Failed to process outgoing request 1: M_UNRECOGNIZED: MatrixError: [404] not implemented (https://dev1.bromal.im/_matrix/client/v3/keys/query) rageshake.ts:69:17 Failed to process outgoing request 0: M_UNRECOGNIZED: MatrixError: [404] not implemented (https://dev1.bromal.im/_matrix/client/v3/keys/upload) rageshake.ts:69:17 Failed to process outgoing request 1: M_UNRECOGNIZED: MatrixError: [404] not implemented (https://dev1.bromal.im/_matrix/client/v3/keys/query) rageshake.ts:69:17 Failed to process outgoing request 0: M_UNRECOGNIZED: MatrixError: [404] not implemented (https://dev1.bromal.im/_matrix/client/v3/keys/upload) rageshake.ts:69:17 Failed to process outgoing request 1: M_UNRECOGNIZED: MatrixError: [404] not implemented (https://dev1.bromal.im/_matrix/client/v3/keys/query) rageshake.ts:69:17 Failed to process outgoing request 0: M_UNRECOGNIZED: MatrixError: [404] not implemented (https://dev1.bromal.im/_matrix/client/v3/keys/upload) rageshake.ts:69:17 Failed to process outgoing request 1: M_UNRECOGNIZED: MatrixError: [404] not implemented (https://dev1.bromal.im/_matrix/client/v3/keys/query) rageshake.ts:69:17 Failed to process outgoing request 0: M_UNRECOGNIZED: MatrixError: [404] not implemented (https://dev1.bromal.im/_matrix/client/v3/keys/upload) rageshake.ts:69:17 Failed to process outgoing request 1: M_UNRECOGNIZED: MatrixError: [404] not implemented (https://dev1.bromal.im/_matrix/client/v3/keys/query) rageshake.ts:69:17 Failed to process outgoing request 0: M_UNRECOGNIZED: MatrixError: [404] not implemented (https://dev1.bromal.im/_matrix/client/v3/keys/upload) rageshake.ts:69:17 Failed to process outgoing request 1: M_UNRECOGNIZED: MatrixError: [404] not implemented (https://dev1.bromal.im/_matrix/client/v3/keys/query) rageshake.ts:69:17 Failed to process outgoing request 0: M_UNRECOGNIZED: MatrixError: [404] not implemented (https://dev1.bromal.im/_matrix/client/v3/keys/upload) rageshake.ts:69:17 Failed to process outgoing request 1: M_UNRECOGNIZED: MatrixError: [404] not implemented (https://dev1.bromal.im/_matrix/client/v3/keys/query) rageshake.ts:69:17 Failed to process outgoing request 0: M_UNRECOGNIZED: MatrixError: [404] not implemented (https://dev1.bromal.im/_matrix/client/v3/keys/upload) rageshake.ts:69:17 Failed to process outgoing request 1: M_UNRECOGNIZED: MatrixError: [404] not implemented (https://dev1.bromal.im/_matrix/client/v3/keys/query) rageshake.ts:69:17 Failed to process outgoing request 0: M_UNRECOGNIZED: MatrixError: [404] not implemented (https://dev1.bromal.im/_matrix/client/v3/keys/upload) rageshake.ts:69:17 Failed to process outgoing request 1: M_UNRECOGNIZED: MatrixError: [404] not implemented (https://dev1.bromal.im/_matrix/client/v3/keys/query) rageshake.ts:69:17 Failed to process outgoing request 0: M_UNRECOGNIZED: MatrixError: [404] not implemented (https://dev1.bromal.im/_matrix/client/v3/keys/upload) rageshake.ts:69:17 Failed to process outgoing request 1: M_UNRECOGNIZED: MatrixError: [404] not implemented (https://dev1.bromal.im/_matrix/client/v3/keys/query) rageshake.ts:69:17 XHR POST https://dev1.bromal.im/_matrix/client/v3/keys/upload [HTTP/1.1 404 Not Found 119ms] Failed to process outgoing request 0: M_UNRECOGNIZED: MatrixError: [404] not implemented (https://dev1.bromal.im/_matrix/client/v3/keys/upload) rageshake.ts:69:17 XHR POST https://dev1.bromal.im/_matrix/client/v3/keys/query [HTTP/1.1 404 Not Found 39ms] Failed to process outgoing request 1: M_UNRECOGNIZED: MatrixError: [404] not implemented (https://dev1.bromal.im/_matrix/client/v3/keys/query) rageshake.ts:69:17 XHR POST https://dev1.bromal.im/_matrix/client/v3/keys/upload [HTTP/1.1 404 Not Found 116ms] Failed to process outgoing request 0: M_UNRECOGNIZED: MatrixError: [404] not implemented (https://dev1.bromal.im/_matrix/client/v3/keys/upload) rageshake.ts:69:17 XHR POST https://dev1.bromal.im/_matrix/client/v3/keys/query [HTTP/1.1 404 Not Found 33ms] Failed to process outgoing request 1: M_UNRECOGNIZED: MatrixError: [404] not implemented (https://dev1.bromal.im/_matrix/client/v3/keys/query) rageshake.ts:69:17 XHR POST https://dev1.bromal.im/_matrix/client/v3/keys/upload [HTTP/1.1 404 Not Found 121ms] Failed to process outgoing request 0: M_UNRECOGNIZED: MatrixError: [404] not implemented (https://dev1.bromal.im/_matrix/client/v3/keys/upload) rageshake.ts:69:17 XHR POST https://dev1.bromal.im/_matrix/client/v3/keys/query [HTTP/1.1 404 Not Found 39ms] Failed to process outgoing request 1: M_UNRECOGNIZED: MatrixError: [404] not implemented (https://dev1.bromal.im/_matrix/client/v3/keys/query) rageshake.ts:69:17 XHR POST https://dev1.bromal.im/_matrix/client/v3/keys/upload [HTTP/1.1 404 Not Found 118ms] Failed to process outgoing request 0: M_UNRECOGNIZED: MatrixError: [404] not implemented (https://dev1.bromal.im/_matrix/client/v3/keys/upload) rageshake.ts:69:17 XHR POST https://dev1.bromal.im/_matrix/client/v3/keys/query [HTTP/1.1 404 Not Found 41ms] Failed to process outgoing request 1: M_UNRECOGNIZED: MatrixError: [404] not implemented (https://dev1.bromal.im/_matrix/client/v3/keys/query) But it isn't related to this issue, maybe I need to repeat this test for reproduce this issue again.
Owner

I guess, the request should be https://spec.matrix.org/v1.19/client-server-api/#put_matrixclientv3roomsroomidsendeventtypetxnid and then an event should be retrieved from the server, you can use something like this: https://spec.matrix.org/v1.19/client-server-api/#get_matrixclientv3roomsroomideventeventid.

AFAIK, if the msgtype provided by the client is "m.file", then it is just a generic attachment even if it is an image, audio or video. For media to be played within the client, it should have a corresponding msgtype.

If a client sends a request (PUT /v3/rooms/.../send/.../...) with "m.audio" msgtype, but you retrieve that event and get "m.file", then it is a bug. But it should not occur by design. :)

If a client for some reason sends a request with "m.file", then the event must be "m.file".

I guess, the request should be https://spec.matrix.org/v1.19/client-server-api/#put_matrixclientv3roomsroomidsendeventtypetxnid and then an event should be retrieved from the server, you can use something like this: https://spec.matrix.org/v1.19/client-server-api/#get_matrixclientv3roomsroomideventeventid. AFAIK, if the msgtype provided by the client is "m.file", then it is just a generic attachment even if it is an image, audio or video. For media to be played within the client, it should have a corresponding msgtype. If a client sends a request (PUT /v3/rooms/.../send/.../...) with "m.audio" msgtype, but you retrieve that event and get "m.file", then it is a bug. But it should not occur by design. :) If a client for some reason sends a request with "m.file", then the event must be "m.file".
Sign in to join this conversation.
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
main/bromal#30
No description provided.