Open
Description
How to use GitHub
- Please use the 👍 reaction to show that you are affected by the same issue.
- Please don't comment if you have no relevant information to add. It's just extra noise for everyone subscribed to this issue.
- Subscribe to receive notifications on status change and new comments.
Steps to reproduce
- Add a external folder under "External storage" setting (Amazon S3 in our case)
- Change the "Attachment folder" settings for Talk to use the new external storage folder.
- Try sending an attachment message (It will fail)
- Ctrl+r to refresh the client.
- Check the "Attachment folder" settings for talk - it had reset to /Talk
Expected behaviour
It should keep using the external storage folder - the online talk client keeps this setting and works fine.
Actual behaviour
It uploads the attachment to the external storage folder successfully - but the message never get's sent to the contact.
After reloading it resets the "Attachment folder" to /Talk.
Tested on Debian, POP_OS! & Ubuntu
Diagnosis and logs
Diagnosis report
Diagnosis report
Nextcloud Talk Desktop | |
---|---|
Version | v1.1.5 |
Built-in Talk version | v21.0.0 |
Release channel | stable |
Operating system | Linux 6.1.0-31-amd64 (#1 SMP PREEMPT_DYNAMIC Debian 6.1.128-1 (2025-02-07)) |
Executable Path | /app/lib/com.nextcloud.talk/Nextcloud Talk |
Using Wayland | ✅ yes |
Connected to | - |
Nextcloud server version | 31.0.0 |
Nextcloud Talk version | 21.0.1 |
notifications app enabled |
✅ yes |
notify_push app enabled |
✅ yes |
Application config
{
"launchAtStartup": false,
"theme": "default",
"systemTitleBar": true,
"monochromeTrayIcon": false,
"zoomFactor": 1,
"playSoundChat": "respect-dnd",
"playSoundCall": "respect-dnd",
"enableCallbox": "respect-dnd",
"secondarySpeaker": false,
"secondarySpeakerDevice": null
}
Client logs
Press Ctrl+Shift+I (Cmd+Option+C on macOS) or use the context menu to open the developer tools, then go to the Console tab.
index.js:2 Using locale "" for language "en"
JitsiStreamBackgroundEffect.worker.js?v=471eafd44fff5b32d804:1 [WASM] Loading model of size: 249792
JitsiStreamBackgroundEffect.worker.js?v=471eafd44fff5b32d804:1 INFO: Created TensorFlow Lite XNNPACK delegate for CPU.
printChar @ JitsiStreamBackgroundEffect.worker.js?v=471eafd44fff5b32d804:1
JitsiStreamBackgroundEffect.worker.js?v=471eafd44fff5b32d804:1 [WASM] Loading model of size: 249792
JitsiStreamBackgroundEffect.worker.js?v=471eafd44fff5b32d804:1 INFO: Created TensorFlow Lite XNNPACK delegate for CPU.
printChar @ JitsiStreamBackgroundEffect.worker.js?v=471eafd44fff5b32d804:1
cloud.metaship.ai/ocs/v2.php/apps/user_status/api/v1/statuses/_evan%40metaship.ai:1
Failed to load resource: the server responded with a status of 404 ()
cloud.metaship.ai/ocs/v2.php/apps/user_status/api/v1/statuses/_evan%40metaship.ai:1
Failed to load resource: the server responded with a status of 404 ()
cloud.metaship.ai/core/preview?fileId=4048&x=32&y=32&mimeFallback=true&a=0&c=67d28e593641c:1
Failed to load resource: the server responded with a status of 404 ()
cloud.metaship.ai/core/preview?fileId=3542&x=32&y=32&mimeFallback=true&a=0&c=67d2efd27d776:1
Failed to load resource: the server responded with a status of 404 ()
cloud.metaship.ai/core/preview?fileId=3543&x=32&y=32&mimeFallback=true&a=0&c=67d27f07de07d:1
Failed to load resource: the server responded with a status of 404 ()
cloud.metaship.ai/core/preview?fileId=4074&x=32&y=32&mimeFallback=true&a=0&c=67d288f174c70:1
Failed to load resource: the server responded with a status of 404 ()
cloud.metaship.ai/core/preview?fileId=3902&x=32&y=32&mimeFallback=true&a=0&c=67d288ea1e047:1
Failed to load resource: the server responded with a status of 404 ()
cloud.metaship.ai/core/preview?fileId=3545&x=32&y=32&mimeFallback=true&a=0&c=67d27b5a36a43:1
Failed to load resource: the server responded with a status of 404 ()
cloud.metaship.ai/core/preview?fileId=4751&x=32&y=32&mimeFallback=true&a=0&c=67d2de7b85fe3:1
Failed to load resource: the server responded with a status of 404 ()
cloud.metaship.ai/core/preview?fileId=4449&x=32&y=32&mimeFallback=true&a=0&c=67d28d40cefba:1
Failed to load resource: the server responded with a status of 404 ()
cloud.metaship.ai/core/preview?fileId=3544&x=32&y=32&mimeFallback=true&a=0&c=67d27afa1e2a9:1
Failed to load resource: the server responded with a status of 404 ()
index.js:2 You need to fill either the text or the ariaLabel props in the button component. Object o
render @ index.js:2
index.js:2 You need to fill either the text or the ariaLabel props in the button component. Object o
render @ index.js:2
index.js:1 Not connected to signaling server yet, defer joining room 8z6vvqme
index.js:2 You need to fill either the text or the ariaLabel props in the button component. Object o
render @ index.js:2
index.js:2 You need to fill either the text or the ariaLabel props in the button component. Object o
render @ index.js:2
index.js:2 You need to fill either the text or the ariaLabel props in the button component. Object o
render @ index.js:2
index.html#/call/8z6vvqme:1 Form submission canceled because the form is not connected
cloud.metaship.ai/remote.php/dav/files/evan%40metaship.ai/Metaship%20Internal/dbgateIcon.png:1
Failed to load resource: the server responded with a status of 404 ()
cloud.metaship.ai/ocs/v2.php/apps/files_sharing/api/v1/shares:1
Failed to load resource: the server responded with a status of 404 ()
index.js:1 Error while sharing file: You are not allowed to share dbgateIcon.png
vi @ index.js:1
index.js:2 You need to fill either the text or the ariaLabel props in the button component. {text: undefined, ariaLabel: null} o {_uid: 367, _isVue: true, __v_skip: true, _scope: e, $options: {…}, …}
render @ index.js:2
e._render @ index.js:2
i @ index.js:2
e.get @ index.js:2
e.run @ index.js:2
ri @ index.js:2
(anonymous) @ index.js:2
va @ index.js:2
Promise.then
ha @ index.js:2
wa @ index.js:2
ni @ index.js:2
e.update @ index.js:2
e.notify @ index.js:2
set @ index.js:2
updateConversation @ index.js:1
(anonymous) @ index.js:2
(anonymous) @ index.js:2
(anonymous) @ index.js:2
h._withCommit @ index.js:2
h.commit @ index.js:2
commit @ index.js:2
updateConversationIfHasChanged @ index.js:1
(anonymous) @ index.js:2
h.dispatch @ index.js:2
dispatch @ index.js:2
patchConversations @ index.js:1
(anonymous) @ index.js:2
h.dispatch @ index.js:2
dispatch @ index.js:2
fetchConversations @ index.js:1
await in fetchConversations
(anonymous) @ index.js:2
h.dispatch @ index.js:2
dispatch @ index.js:2
fetchConversations @ index.js:1
(anonymous) @ index.js:1
index.js:2 You need to fill either the text or the ariaLabel props in the button component. {text: undefined, ariaLabel: null} o {_uid: 367, _isVue: true, __v_skip: true, _scope: e, $options: {…}, …}
render @ index.js:2
e._render @ index.js:2
i @ index.js:2
e.get @ index.js:2
e.run @ index.js:2
ri @ index.js:2
(anonymous) @ index.js:2
va @ index.js:2
Promise.then
ha @ index.js:2
wa @ index.js:2
ni @ index.js:2
e.update @ index.js:2
e.notify @ index.js:2
set @ index.js:2
Si.ji.set @ index.js:2
handleSubmit @ index.js:1
ca @ index.js:2
a @ index.js:2
ca @ index.js:2
e.$emit @ index.js:2
onEnter @ index.js:2
e._g.e._b.on.keydown @ index.js:2
ca @ index.js:2
a @ index.js:2
n._wrapper @ index.js:2
index.js:2 You need to fill either the text or the ariaLabel props in the button component. {text: undefined, ariaLabel: null} o {_uid: 367, _isVue: true, __v_skip: true, _scope: e, $options: {…}, …}
render @ index.js:2
e._render @ index.js:2
i @ index.js:2
e.get @ index.js:2
e.run @ index.js:2
ri @ index.js:2
(anonymous) @ index.js:2
va @ index.js:2
Promise.then
ha @ index.js:2
wa @ index.js:2
ni @ index.js:2
e.update @ index.js:2
e.notify @ index.js:2
set @ index.js:2
Te @ index.js:2
addConversation @ index.js:1
(anonymous) @ index.js:2
(anonymous) @ index.js:2
(anonymous) @ index.js:2
h._withCommit @ index.js:2
h.commit @ index.js:2
commit @ index.js:2
updateLastCommonReadMessage @ index.js:1
(anonymous) @ index.js:2
h.dispatch @ index.js:2
dispatch @ index.js:2
postNewMessage @ index.js:1
await in postNewMessage
(anonymous) @ index.js:2
h.dispatch @ index.js:2
dispatch @ index.js:2
postMessage @ index.js:1
handleSubmit @ index.js:1
ca @ index.js:2
a @ index.js:2
ca @ index.js:2
e.$emit @ index.js:2
onEnter @ index.js:2
e._g.e._b.on.keydown @ index.js:2
ca @ index.js:2
a @ index.js:2
n._wrapper @ index.js:2
index.js:2 You need to fill either the text or the ariaLabel props in the button component. {text: undefined, ariaLabel: null} o {_uid: 367, _isVue: true, __v_skip: true, _scope: e, $options: {…}, …}
render @ index.js:2
e._render @ index.js:2
i @ index.js:2
e.get @ index.js:2
e.run @ index.js:2
ri @ index.js:2
(anonymous) @ index.js:2
va @ index.js:2
Promise.then
ha @ index.js:2
wa @ index.js:2
ni @ index.js:2
e.update @ index.js:2
e.notify @ index.js:2
set @ index.js:2
Te @ index.js:2
addConversation @ index.js:1
(anonymous) @ index.js:2
(anonymous) @ index.js:2
(anonymous) @ index.js:2
h._withCommit @ index.js:2
h.commit @ index.js:2
commit @ index.js:2
updateLastCommonReadMessage @ index.js:1
(anonymous) @ index.js:2
h.dispatch @ index.js:2
dispatch @ index.js:2
lookForNewMessages @ index.js:1
await in lookForNewMessages
(anonymous) @ index.js:2
h.dispatch @ index.js:2
dispatch @ index.js:2
getNewMessages @ index.js:1
(anonymous) @ index.js:1
setTimeout
getNewMessages @ index.js:1
index.js:2 You need to fill either the text or the ariaLabel props in the button component. {text: undefined, ariaLabel: null} o {_uid: 367, _isVue: true, __v_skip: true, _scope: e, $options: {…}, …}
render @ index.js:2
e._render @ index.js:2
i @ index.js:2
e.get @ index.js:2
e.run @ index.js:2
ri @ index.js:2
(anonymous) @ index.js:2
va @ index.js:2
Promise.then
ha @ index.js:2
wa @ index.js:2
ni @ index.js:2
e.update @ index.js:2
e.notify @ index.js:2
set @ index.js:2
Si.ji.set @ index.js:2
handleUserStatusUpdated @ index.js:2
(anonymous) @ index.js:2
emit @ index.js:2
emit @ index.js:2
c @ index.js:2
ri @ index.js:1
addConversation @ index.js:1
(anonymous) @ index.js:2
h.dispatch @ index.js:2
dispatch @ index.js:2
updateLastReadMessage @ index.js:1
await in updateLastReadMessage
(anonymous) @ index.js:2
h.dispatch @ index.js:2
dispatch @ index.js:2
postNewMessage @ index.js:1
await in postNewMessage
(anonymous) @ index.js:2
h.dispatch @ index.js:2
dispatch @ index.js:2
postMessage @ index.js:1
handleSubmit @ index.js:1
ca @ index.js:2
a @ index.js:2
ca @ index.js:2
e.$emit @ index.js:2
onEnter @ index.js:2
e._g.e._b.on.keydown @ index.js:2
ca @ index.js:2
a @ index.js:2
n._wrapper @ index.js:2
index.js:2 You need to fill either the text or the ariaLabel props in the button component. {text: undefined, ariaLabel: null} o {_uid: 367, _isVue: true, __v_skip: true, _scope: e, $options: {…}, …}
render @ index.js:2
e._render @ index.js:2
i @ index.js:2
e.get @ index.js:2
e.run @ index.js:2
ri @ index.js:2
(anonymous) @ index.js:2
va @ index.js:2
Promise.then
ha @ index.js:2
wa @ index.js:2
ni @ index.js:2
e.update @ index.js:2
e.notify @ index.js:2
set @ index.js:2
updateConversation @ index.js:1
(anonymous) @ index.js:2
(anonymous) @ index.js:2
(anonymous) @ index.js:2
h._withCommit @ index.js:2
h.commit @ index.js:2
commit @ index.js:2
updateConversationIfHasChanged @ index.js:1
(anonymous) @ index.js:2
h.dispatch @ index.js:2
dispatch @ index.js:2
patchConversations @ index.js:1
(anonymous) @ index.js:2
h.dispatch @ index.js:2
dispatch @ index.js:2
fetchConversations @ index.js:1
await in fetchConversations
(anonymous) @ index.js:2
h.dispatch @ index.js:2
dispatch @ index.js:2
fetchConversations @ index.js:1
(anonymous) @ index.js:1
index.js:2 You need to fill either the text or the ariaLabel props in the button component. {text: undefined, ariaLabel: null} o {_uid: 367, _isVue: true, __v_skip: true, _scope: e, $options: {…}, …}
render @ index.js:2
e._render @ index.js:2
i @ index.js:2
e.get @ index.js:2
e.run @ index.js:2
ri @ index.js:2
(anonymous) @ index.js:2
va @ index.js:2
Promise.then
ha @ index.js:2
wa @ index.js:2
ni @ index.js:2
e.update @ index.js:2
e.notify @ index.js:2
set @ index.js:2
updateConversation @ index.js:1
(anonymous) @ index.js:2
(anonymous) @ index.js:2
(anonymous) @ index.js:2
h._withCommit @ index.js:2
h.commit @ index.js:2
commit @ index.js:2
updateConversationIfHasChanged @ index.js:1
(anonymous) @ index.js:2
h.dispatch @ index.js:2
dispatch @ index.js:2
patchConversations @ index.js:1
(anonymous) @ index.js:2
h.dispatch @ index.js:2
dispatch @ index.js:2
fetchConversations @ index.js:1
await in fetchConversations
(anonymous) @ index.js:2
h.dispatch @ index.js:2
dispatch @ index.js:2
fetchConversations @ index.js:1
(anonymous) @ index.js:1
index.js:2 You need to fill either the text or the ariaLabel props in the button component. {text: undefined, ariaLabel: null} o {_uid: 367, _isVue: true, __v_skip: true, _scope: e, $options: {…}, …}
render @ index.js:2
e._render @ index.js:2
i @ index.js:2
e.get @ index.js:2
e.run @ index.js:2
ri @ index.js:2
(anonymous) @ index.js:2
va @ index.js:2
Promise.then
ha @ index.js:2
wa @ index.js:2
ni @ index.js:2
e.update @ index.js:2
e.notify @ index.js:2
set @ index.js:2
updateConversation @ index.js:1
(anonymous) @ index.js:2
(anonymous) @ index.js:2
(anonymous) @ index.js:2
h._withCommit @ index.js:2
h.commit @ index.js:2
commit @ index.js:2
updateConversationIfHasChanged @ index.js:1
(anonymous) @ index.js:2
h.dispatch @ index.js:2
dispatch @ index.js:2
patchConversations @ index.js:1
(anonymous) @ index.js:2
h.dispatch @ index.js:2
dispatch @ index.js:2
fetchConversations @ index.js:1
await in fetchConversations
(anonymous) @ index.js:2
h.dispatch @ index.js:2
dispatch @ index.js:2
fetchConversations @ index.js:1
(anonymous) @ index.js:1