Clipboard copy paste not working properly
Chomium and Firefox browsers
Describe the Bug
It's not possible to copy content from within the Text, Calc and Presentation apps to the clipboard.
Steps to Reproduce
- Copy some text in Windows clipboard
- Paste text in Text, Calc and Presentation
Expected Behaviour
Text gets copied in Text, Calc and Presentation.
Actual Behaviour
Text doesn't get copied in Text, Calc and Presentation.
Chromium browsers only
Describe the Bug
It's not possible to paste content from the clipboard into Text, Calc and Presentation apps.
Steps to Reproduce
- Copy some text in Windows clipboard
- Paste text in Text, Calc and Presentation
Expected Behaviour
Text gets copied from Text, Calc and Presentation to the clipboard.
Actual Behaviour
Nothing gets added to the clipboard.
Console browser logs
Errors (x5)
TypeError: t.fileInfo is null
fn Sidebar.vue:1
r VueJS
$ NcAppSidebar-CqER6-dl.mjs:584
VueJS 23
open Sidebar.vue:466
exec sidebarAction.ts:49
openSidebarForFile FilesListVirtual.vue:147
mounted FilesListVirtual.vue:130
VueJS 21
updateNodes files.ts:39
k pinia.mjs:1380
fetchContent FilesList.vue:321
mounted FilesList.vue:288
VueJS 11
73348 main.ts:33
Webpack 5
vue.runtime.esm.js:3065:16
TypeError: t.fileInfo is null
fn Sidebar.vue:1
r VueJS
$ NcAppSidebar-CqER6-dl.mjs:584
VueJS 14
setFullScreenMode Sidebar.vue:518
beforeOpen viewer-main.mjs:588
openFile viewer-main.mjs:588
file viewer-main.mjs:588
$a viewer-main.mjs:6
run viewer-main.mjs:6
Ww viewer-main.mjs:6
S0 viewer-main.mjs:6
Hl viewer-main.mjs:6
promise callback*mo viewer-main.mjs:6
S0 viewer-main.mjs:6
Ph viewer-main.mjs:6
update viewer-main.mjs:6
notify viewer-main.mjs:6
set viewer-main.mjs:6
open viewer-main.mjs:2187
Lj viewer-main.mjs:428
handleOpenFile FilesListVirtual.vue:177
mounted FilesListVirtual.vue:131
VueJS 21
updateNodes files.ts:39
k pinia.mjs:1380
fetchContent FilesList.vue:321
mounted FilesList.vue:288
VueJS 11
73348 main.ts:33
Webpack 5
vue.runtime.esm.js:3065:16
Error while loading the file data TypeError: this.$refs.sidebar is undefined
open Sidebar.vue:491
showSidebar viewer-main.mjs:588
changeSidebar viewer-main.mjs:588
openFileInfo viewer-main.mjs:588
openFile viewer-main.mjs:588
file viewer-main.mjs:588
$a viewer-main.mjs:6
run viewer-main.mjs:6
Ww viewer-main.mjs:6
S0 viewer-main.mjs:6
Hl viewer-main.mjs:6
promise callback*mo viewer-main.mjs:6
S0 viewer-main.mjs:6
Ph viewer-main.mjs:6
update viewer-main.mjs:6
notify viewer-main.mjs:6
set viewer-main.mjs:6
open viewer-main.mjs:2187
Lj viewer-main.mjs:428
handleOpenFile FilesListVirtual.vue:177
mounted FilesListVirtual.vue:131
VueJS 21
updateNodes files.ts:39
k pinia.mjs:1380
fetchContent FilesList.vue:321
mounted FilesList.vue:288
VueJS 11
73348 main.ts:33
Webpack 5
Sidebar.vue:497
Uncaught (in promise) Error: TypeError: this.$refs.sidebar is undefined
open Sidebar.vue:499
showSidebar viewer-main.mjs:588
changeSidebar viewer-main.mjs:588
openFileInfo viewer-main.mjs:588
openFile viewer-main.mjs:588
file viewer-main.mjs:588
$a viewer-main.mjs:6
run viewer-main.mjs:6
Ww viewer-main.mjs:6
S0 viewer-main.mjs:6
Hl viewer-main.mjs:6
promise callback*mo viewer-main.mjs:6
S0 viewer-main.mjs:6
Ph viewer-main.mjs:6
update viewer-main.mjs:6
notify viewer-main.mjs:6
set viewer-main.mjs:6
open viewer-main.mjs:2187
Lj viewer-main.mjs:428
handleOpenFile FilesListVirtual.vue:177
mounted FilesListVirtual.vue:131
VueJS 21
updateNodes files.ts:39
k pinia.mjs:1380
fetchContent FilesList.vue:321
mounted FilesList.vue:288
VueJS 11
73348 main.ts:33
Webpack 5
Sidebar.vue:499
GET
https://cloud.freeman.art/collabora/browser/594b605/images/lc_fold.svg
[HTTP/2 404 7ms]
GET
https://cloud.freeman.art/collabora/browser/594b605/images/lc_hamburger-tablet.svg
[HTTP/2 404 7ms]
GET
https://cloud.freeman.art/collabora/browser/594b605/images/lc_zoom.svg
[HTTP/2 404 6ms]
Error: Promised response from onMessage listener went out of scope 2 ExtensionMessagingService.js:89:34
Warnings (x31)
These 4 warnings regarding the clipboard
Feature Policy: Skipping unsupported feature name “clipboard-read”. [viewer-main.mjs:6:59739](https://cloud.freeman.art/apps/viewer/js/viewer-main.mjs?v=eac36190-454)
Feature Policy: Skipping unsupported feature name “clipboard-write”. [viewer-main.mjs:6:59739](https://cloud.freeman.art/apps/viewer/js/viewer-main.mjs?v=eac36190-454)
Feature Policy: Skipping unsupported feature name “clipboard-read”. [viewer-main.mjs:6:49941](https://cloud.freeman.art/apps/viewer/js/viewer-main.mjs?v=eac36190-454)
Feature Policy: Skipping unsupported feature name “clipboard-write”.
Content-Security-Policy: Ignoring “blob:” within script-src-elem: ‘strict-dynamic’ specified 36505
Layout was forced before the page was fully loaded. If stylesheets are not yet loaded this may cause a flash of unstyled content. 36505
You need to fill either the text or the ariaLabel props in the button component.
Object { text: undefined, ariaLabel: "" }
Object { _uid: 117, _isVue: true, __v_skip: true, _scope: {…}, "$options": {…}, _renderProxy: {…}, _self: {…}, "$parent": {…}, "$root": {…}, "$children": [], … }
NcButton.mjs:156:37
You need to fill either the text or the ariaLabel props in the button component.
Object { text: undefined, ariaLabel: "" }
Object { _uid: 136, _isVue: true, __v_skip: true, _scope: {…}, "$options": {…}, _renderProxy: {…}, _self: {…}, "$parent": {…}, "$root": {…}, "$children": [], … }
NcButton.mjs:156:37
You need to fill either the text or the ariaLabel props in the button component.
Object { text: undefined, ariaLabel: "" }
Object { _uid: 155, _isVue: true, __v_skip: true, _scope: {…}, "$options": {…}, _renderProxy: {…}, _self: {…}, "$parent": {…}, "$root": {…}, "$children": [], … }
NcButton.mjs:156:37
You need to fill either the text or the ariaLabel props in the button component.
Object { text: undefined, ariaLabel: "" }
Object { _uid: 174, _isVue: true, __v_skip: true, _scope: {…}, "$options": {…}, _renderProxy: {…}, _self: {…}, "$parent": {…}, "$root": {…}, "$children": [], … }
NcButton.mjs:156:37
You need to fill either the text or the ariaLabel props in the button component.
Object { text: undefined, ariaLabel: "" }
Object { _uid: 193, _isVue: true, __v_skip: true, _scope: {…}, "$options": {…}, _renderProxy: {…}, _self: {…}, "$parent": {…}, "$root": {…}, "$children": [], … }
NcButton.mjs:156:37
You need to fill either the text or the ariaLabel props in the button component.
Object { text: undefined, ariaLabel: "" }
Object { _uid: 212, _isVue: true, __v_skip: true, _scope: {…}, "$options": {…}, _renderProxy: {…}, _self: {…}, "$parent": {…}, "$root": {…}, "$children": [], … }
NcButton.mjs:156:37
You need to fill either the text or the ariaLabel props in the button component.
Object { text: undefined, ariaLabel: "" }
Object { _uid: 231, _isVue: true, __v_skip: true, _scope: {…}, "$options": {…}, _renderProxy: {…}, _self: {…}, "$parent": {…}, "$root": {…}, "$children": [], … }
NcButton.mjs:156:37
You need to fill either the text or the ariaLabel props in the button component.
Object { text: undefined, ariaLabel: "" }
Object { _uid: 250, _isVue: true, __v_skip: true, _scope: {…}, "$options": {…}, _renderProxy: {…}, _self: {…}, "$parent": {…}, "$root": {…}, "$children": [], … }
NcButton.mjs:156:37
You need to fill either the text or the ariaLabel props in the button component.
Object { text: undefined, ariaLabel: "" }
Object { _uid: 269, _isVue: true, __v_skip: true, _scope: {…}, "$options": {…}, _renderProxy: {…}, _self: {…}, "$parent": {…}, "$root": {…}, "$children": [], … }
NcButton.mjs:156:37
You need to fill either the text or the ariaLabel props in the button component.
Object { text: undefined, ariaLabel: "" }
Object { _uid: 288, _isVue: true, __v_skip: true, _scope: {…}, "$options": {…}, _renderProxy: {…}, _self: {…}, "$parent": {…}, "$root": {…}, "$children": [], … }
NcButton.mjs:156:37
You need to fill either the text or the ariaLabel props in the button component.
Object { text: undefined, ariaLabel: "" }
Object { _uid: 307, _isVue: true, __v_skip: true, _scope: {…}, "$options": {…}, _renderProxy: {…}, _self: {…}, "$parent": {…}, "$root": {…}, "$children": [], … }
NcButton.mjs:156:37
You need to fill either the text or the ariaLabel props in the button component.
Object { text: undefined, ariaLabel: "" }
Object { _uid: 117, _isVue: true, __v_skip: true, _scope: {…}, "$options": {…}, _renderProxy: {…}, _self: {…}, "$parent": {…}, "$root": {…}, "$children": (1) […], … }
NcButton.mjs:156:37
Feature Policy: Skipping unsupported feature name “clipboard-read”. viewer-main.mjs:6:59739
Feature Policy: Skipping unsupported feature name “clipboard-write”. viewer-main.mjs:6:59739
Feature Policy: Skipping unsupported feature name “clipboard-read”. viewer-main.mjs:6:49941
Feature Policy: Skipping unsupported feature name “clipboard-write”. viewer-main.mjs:6:49941
You need to fill either the text or the ariaLabel props in the button component.
Object { text: undefined, ariaLabel: "" }
Object { _uid: 117, _isVue: true, __v_skip: true, _scope: {…}, "$options": {…}, _renderProxy: {…}, _self: {…}, "$parent": {…}, "$root": {…}, "$children": (1) […], … }
NcButton.mjs:156:37
You need to fill either the text or the ariaLabel props in the button component.
Object { text: undefined, ariaLabel: "" }
Object { _uid: 136, _isVue: true, __v_skip: true, _scope: {…}, "$options": {…}, _renderProxy: {…}, _self: {…}, "$parent": {…}, "$root": {…}, "$children": (1) […], … }
NcButton.mjs:156:37
You need to fill either the text or the ariaLabel props in the button component.
Object { text: undefined, ariaLabel: "" }
Object { _uid: 155, _isVue: true, __v_skip: true, _scope: {…}, "$options": {…}, _renderProxy: {…}, _self: {…}, "$parent": {…}, "$root": {…}, "$children": (1) […], … }
NcButton.mjs:156:37
You need to fill either the text or the ariaLabel props in the button component.
Object { text: undefined, ariaLabel: "" }
Object { _uid: 174, _isVue: true, __v_skip: true, _scope: {…}, "$options": {…}, _renderProxy: {…}, _self: {…}, "$parent": {…}, "$root": {…}, "$children": (1) […], … }
NcButton.mjs:156:37
You need to fill either the text or the ariaLabel props in the button component.
Object { text: undefined, ariaLabel: "" }
Object { _uid: 193, _isVue: true, __v_skip: true, _scope: {…}, "$options": {…}, _renderProxy: {…}, _self: {…}, "$parent": {…}, "$root": {…}, "$children": (1) […], … }
NcButton.mjs:156:37
You need to fill either the text or the ariaLabel props in the button component.
Object { text: undefined, ariaLabel: "" }
Object { _uid: 212, _isVue: true, __v_skip: true, _scope: {…}, "$options": {…}, _renderProxy: {…}, _self: {…}, "$parent": {…}, "$root": {…}, "$children": (1) […], … }
NcButton.mjs:156:37
You need to fill either the text or the ariaLabel props in the button component.
Object { text: undefined, ariaLabel: "" }
Object { _uid: 231, _isVue: true, __v_skip: true, _scope: {…}, "$options": {…}, _renderProxy: {…}, _self: {…}, "$parent": {…}, "$root": {…}, "$children": (1) […], … }
NcButton.mjs:156:37
You need to fill either the text or the ariaLabel props in the button component.
Object { text: undefined, ariaLabel: "" }
Object { _uid: 250, _isVue: true, __v_skip: true, _scope: {…}, "$options": {…}, _renderProxy: {…}, _self: {…}, "$parent": {…}, "$root": {…}, "$children": (1) […], … }
NcButton.mjs:156:37
You need to fill either the text or the ariaLabel props in the button component.
Object { text: undefined, ariaLabel: "" }
Object { _uid: 269, _isVue: true, __v_skip: true, _scope: {…}, "$options": {…}, _renderProxy: {…}, _self: {…}, "$parent": {…}, "$root": {…}, "$children": (1) […], … }
NcButton.mjs:156:37
You need to fill either the text or the ariaLabel props in the button component.
Object { text: undefined, ariaLabel: "" }
Object { _uid: 288, _isVue: true, __v_skip: true, _scope: {…}, "$options": {…}, _renderProxy: {…}, _self: {…}, "$parent": {…}, "$root": {…}, "$children": (1) […], … }
NcButton.mjs:156:37
You need to fill either the text or the ariaLabel props in the button component.
Object { text: undefined, ariaLabel: "" }
Object { _uid: 307, _isVue: true, __v_skip: true, _scope: {…}, "$options": {…}, _renderProxy: {…}, _self: {…}, "$parent": {…}, "$root": {…}, "$children": (1) […], … }
NcButton.mjs:156:37
This page uses the non standard property “zoom”. Consider using calc() in the relevant property values, or using “transform” along with “transform-origin: 0 0”. cool.html:79:42
Synchronous XMLHttpRequest on the main thread is deprecated because of its detrimental effects to the end user’s experience. For more help https://xhr.spec.whatwg.org/#sync-warning bundle.js:8812:5
Desktop
COOLWSD version: 24.04.3.1 (git hash: 594b605 (E))
LOKit version: Collabora Office 24.04.3.1 (git hash: 31b6e2c)
Served by: Debian GNU/Linux 12 (bookworm)
Additional Context
First shared on Nextcloud forum where I've been told to post my issue at Collabora in this issue. I believe the issue fits this repo better since I'm using Collabora by richdocuments in Nextcloud.
Since today I'm able to copy content from Text, Calc and Presentation both in Chrome and Firefox.
Also, for 2 of my 3 computers, I'm now able to paste content into Text, Calc and Presentation in Firefox only.
All Firefox versions are the same on the 3 computers.
This is so strange and annoying.
Is there a solution now?Can other collaborators take a look together.
This feature is a basic feature that is too deadly
Is there a solution now?Can other collaborators take a look together.
I don't know why this is happening. What's your Nextcloud version and which browser work or don't with copy and/or paste?
Maybe we'll find similarities in our setups.
It would be helpful if you filled out our bug report template instead of bypassing it - e.g. https://github.com/nextcloud/richdocuments/issues/new?assignees=&labels=&projects=&template=Bug_report.md
You didn't even specify basics like Nextcloud Server version, Nextcloud Office version, browser versions, etc. :-)
I can reproduce the issue on Safari.
Describe the bug I can reproduce the issue in Collabora Online Calc on Safari. I have not tried other browsers or Collabora Online apps.
To Reproduce Steps to reproduce the behavior:
- Go to Calc on Safari
- Copy any field
- Clipboard copy/paste does not work (first copy could work but then clipboard is kept on the first copy, not any further copy)
Expected behavior
- Go to Calc on Safari
- Copy any field
- Clipboard copy/paste should work
Screenshots No screenshot
Client details:
- OS: MacOS Sonoma 14.4.1
- Browser Safari
- Version 17.4.1
- Device: MacBook Air 2018
Server details
Operating system: Arch Linux
Web server: nginx
Database: MariaDB
PHP version: 8.3.8-2
Nextcloud version: 9.0.3
Version of the richdocuments app Nextcloud Office 8.4.3
Version of Collabora Online 24.04.4.2-1 (latest)
Configuration of the richdocuments app
{
"apps": {
"richdocuments": {
"canonical_webroot": "",
"disable_certificate_verification": "yes",
"enabled": "yes",
"external_apps": "",
"installed_version": "8.4.3",
"public_wopi_url": "https:\/\/collaboraonline.example.com",
"types": "prevent_group_restriction",
"wopi_url": "https:\/\/collaboraonline.example.com"
}
}
}
Logs
Nextcloud log (data/nextcloud.log)
{"reqId":"AXiliJ2uREt0lEPqk8go","level":0,"time":"2024-06-26T09:43:03+00:00","remoteAddr":"2a0d:3344:ea:2a10:e5bb:af72:fd51:3250","user":"HLFH","app":"timetracker","method":"POST","url":"/apps/text/session/47742/push","message":"/appinfo/app.php is deprecated, use \\OCP\\AppFramework\\Bootstrap\\IBootstrap on the application class instead.","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.4.1 Safari/605.1.15","version":"29.0.3.4","data":{"app":"timetracker"}}
{"reqId":"PnQgQQmD1nROd8UURDaD","level":0,"time":"2024-06-26T09:43:10+00:00","remoteAddr":"2a0d:3344:ea:2a10:e5bb:af72:fd51:3250","user":"HLFH","app":"timetracker","method":"POST","url":"/apps/text/session/47742/sync","message":"/appinfo/app.php is deprecated, use \\OCP\\AppFramework\\Bootstrap\\IBootstrap on the application class instead.","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.4.1 Safari/605.1.15","version":"29.0.3.4","data":{"app":"timetracker"}}
{"reqId":"PnQgQQmD1nROd8UURDaD","level":0,"time":"2024-06-26T09:43:10+00:00","remoteAddr":"2a0d:3344:ea:2a10:e5bb:af72:fd51:3250","user":"HLFH","app":"no app in context","method":"POST","url":"/apps/text/session/47742/sync","message":"dirty table reads: SELECT `id`, `color`, `document_id`, `last_awareness_message`, `last_contact`, `user_id`, `guest_name` FROM `*PREFIX*text_sessions` WHERE `document_id` = :dcValue1","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.4.1 Safari/605.1.15","version":"29.0.3.4","exception":{"Exception":"Exception","Message":"dirty table reads: SELECT `id`, `color`, `document_id`, `last_awareness_message`, `last_contact`, `user_id`, `guest_name` FROM `*PREFIX*text_sessions` WHERE `document_id` = :dcValue1","Code":0,"Trace":[{"file":"/srv/http/nextcloud/3rdparty/doctrine/dbal/src/Query/QueryBuilder.php","line":344,"function":"executeQuery","class":"OC\\DB\\Connection","type":"->","args":["SELECT `id`, `color`, `document_id`, `last_awareness_message`, `last_contact`, `user_id`, `guest_name` FROM `*PREFIX*text_sessions` WHERE `document_id` = :dcValue1",[47742],[2],null]},{"file":"/srv/http/nextcloud/3rdparty/doctrine/dbal/src/Query/QueryBuilder.php","line":384,"function":"executeQuery","class":"Doctrine\\DBAL\\Query\\QueryBuilder","type":"->","args":[]},{"file":"/srv/http/nextcloud/lib/private/DB/QueryBuilder/QueryBuilder.php","line":280,"function":"execute","class":"Doctrine\\DBAL\\Query\\QueryBuilder","type":"->","args":[]},{"file":"/srv/http/nextcloud/lib/private/DB/QueryBuilder/QueryBuilder.php","line":293,"function":"execute","class":"OC\\DB\\QueryBuilder\\QueryBuilder","type":"->","args":[]},{"file":"/srv/http/nextcloud/lib/public/AppFramework/Db/QBMapper.php","line":335,"function":"executeQuery","class":"OC\\DB\\QueryBuilder\\QueryBuilder","type":"->","args":[]},{"file":"/srv/http/nextcloud/apps/text/lib/Db/SessionMapper.php","line":68,"function":"findEntities","class":"OCP\\AppFramework\\Db\\QBMapper","type":"->","args":[["OC\\DB\\QueryBuilder\\QueryBuilder"]]},{"file":"/srv/http/nextcloud/apps/text/lib/Service/SessionService.php","line":99,"function":"findAll","class":"OCA\\Text\\Db\\SessionMapper","type":"->","args":[47742]},{"file":"/srv/http/nextcloud/apps/text/lib/Service/ApiService.php","line":197,"function":"getAllSessions","class":"OCA\\Text\\Service\\SessionService","type":"->","args":[47742]},{"file":"/srv/http/nextcloud/apps/text/lib/Controller/SessionController.php","line":74,"function":"sync","class":"OCA\\Text\\Service\\ApiService","type":"->","args":["*** sensitive parameters replaced ***"]},{"file":"/srv/http/nextcloud/lib/private/AppFramework/Http/Dispatcher.php","line":232,"function":"sync","class":"OCA\\Text\\Controller\\SessionController","type":"->","args":["*** sensitive parameters replaced ***"]},{"file":"/srv/http/nextcloud/lib/private/AppFramework/Http/Dispatcher.php","line":138,"function":"executeController","class":"OC\\AppFramework\\Http\\Dispatcher","type":"->","args":[["OCA\\Text\\Controller\\SessionController"],"sync"]},{"file":"/srv/http/nextcloud/lib/private/AppFramework/App.php","line":184,"function":"dispatch","class":"OC\\AppFramework\\Http\\Dispatcher","type":"->","args":[["OCA\\Text\\Controller\\SessionController"],"sync"]},{"file":"/srv/http/nextcloud/lib/private/Route/Router.php","line":338,"function":"main","class":"OC\\AppFramework\\App","type":"::","args":["OCA\\Text\\Controller\\SessionController","sync",["OC\\AppFramework\\DependencyInjection\\DIContainer"],["47742","text.session.sync"]]},{"file":"/srv/http/nextcloud/lib/base.php","line":1050,"function":"match","class":"OC\\Route\\Router","type":"->","args":["/apps/text/session/47742/sync"]},{"file":"/srv/http/nextcloud/index.php","line":49,"function":"handleRequest","class":"OC","type":"::","args":[]}],"File":"/srv/http/nextcloud/lib/private/DB/Connection.php","Line":316,"message":"dirty table reads: SELECT `id`, `color`, `document_id`, `last_awareness_message`, `last_contact`, `user_id`, `guest_name` FROM `*PREFIX*text_sessions` WHERE `document_id` = :dcValue1","tables":["oc_text_sessions"],"reads":["oc_text_sessions"],"exception":{},"CustomMessage":"dirty table reads: SELECT `id`, `color`, `document_id`, `last_awareness_message`, `last_contact`, `user_id`, `guest_name` FROM `*PREFIX*text_sessions` WHERE `document_id` = :dcValue1"}}
{"reqId":"r8RdYK311DpiaCHVD1HX","level":0,"time":"2024-06-26T09:43:11+00:00","remoteAddr":"2a0d:3344:ea:2a10:e5bb:af72:fd51:3250","user":"HLFH","app":"timetracker","method":"POST","url":"/apps/text/session/47742/push","message":"/appinfo/app.php is deprecated, use \\OCP\\AppFramework\\Bootstrap\\IBootstrap on the application class instead.","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.4.1 Safari/605.1.15","version":"29.0.3.4","data":{"app":"timetracker"}}
Browser log
[Error] Blocked a frame with origin "https://cloud.example.com" from accessing a frame with origin "https://collaboraonline.example.com". Protocols, domains, and ports must match. (x2)
[Error] [ERROR] text: Unexpected Error "Failed to apply steps. Retry!" – Object
Objectapp: "text"error: Error: Failed to apply steps. Retry! Error: Failed to apply steps. Retry!level: 0uid: "HLFH"Object Prototype
log (index-Y-pG0XRl.mjs:2:1078)
error (index-Y-pG0XRl.mjs:2:1404)
[Error] [ERROR] text: Unexpected Error "Failed to apply steps. Retry!" – Object
Objectapp: "text"error: Error: Failed to apply steps. Retry! Error: Failed to apply steps. Retry!level: 0uid: "HLFH"Object Prototype
log (index-Y-pG0XRl.mjs:2:1078)
error (index-Y-pG0XRl.mjs:2:1404)
Here is it @joshtrichards
Since there is an upstream issue with Collabora let me close this one as this is unrelated to the integration app.