New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Duplicated document links in navigation and collection history #5948
Comments
@almereyda I'm not sure what's going on with your instance to be honest, we've not had any other reports of this and it's never happened in the cloud-hosted instance to my knowledge |
@almereyda happy to hear I am not the only one with the same problem :-) I have seen the exact same behaviour except this instance is only used by me for note-taking so no collaboration happening. Outline has been working perfectly fine for a couple of months for me, I had this problem once before, I think it was a few weeks ago, and it disappeared after a docker compose down followed by docker-compose up -d. OS: win 11 I clicked the "+" sign next to the collection named docker, edited the new page then published it. Didn't notice an issue. Later on, I wondered why I had a second draft and noticed the draft had the same name as the published page. If I publish the draft, it creates a second page with the same name. If I delete it, the published page also disappears. if I delete the draft, the draft stays and the published page disappears: Once I click the draft it also appears in the sidebar menu: This is very confusing, and the logs do not show any errors. Happy to share, just not sure if there's anything confidential in them, let me know if you like to see them. The logs show quite a lot of these entries:
|
This data is returned from a call to Any hints hat how this may be debugged are highly appreciated. If we have some kind of (frontend) profiling mode, I'm also happy to enable this. Thank you for the excellent reproducer. I was able to witness failing WebSocket connections and failing succeeding API requests: It appears the WebSockets connection is flakey, and some expected objects do not exist, yet. Is there some kind of hand over of state from the WebSockets connection to the HTTP API service? In my reenactment, I've found all of the above, summarising in other words:
It is also Traefik that we use, so I suspect there's some issue with the WebSockets connection, and that's about it. Outline could fail a little more gracefully, though. |
I doubt its traefik, I have a few more apps using websockets behind it. Happy to provide logs or help debugging. |
You don't have WebSocket errors and subsequently failing POST requests in your browser console? I will follow down along that path for a moment, and report back here. Actually I'm already glad to know, that we're not alone with this edge case over here. |
As it seems to be reproducible, the best thing to do is take a screen recording with the inspector open – to show all errors, network requests etc. |
FWIW these screenshots all seem like expected behavior, which would mostly rule out websocket issues |
Any other tips what to do to sort this out? Willing to show all my configs and debug given more instructions. edited to add this info: I am willing to start from scratch, given I can easily export my kb. Any advice? |
Probably best not to wipe the install.
If the bad data persisted after reloading the app then it's definitely not a websockets issue FWIW, we can count that out. I've traced through the code again and it continues to confound – the entire publish operation takes place in a transaction, it should be impossible for the data to be added to the sidebar and not be published. |
First of all, sorry to take over this thread, happy to open a new one if we notice it is unrelated to the original poster. I can still reproduce it. For now, here is my docker-compose
|
It's possible the exporting issue is related as I can't reproduce that bug in a development or the cloud production environment either 🤷 When you publish a document and the bug reproduces, in the API response is the |
@ovizii No offense taken. Thanks for moving forward in chasing this Heisenbug. I'm inclined to record some reproducers, yet struggle to find the time just yet. And in a way I would even feel inclined to run a ZFS snapshot from this instance's containers against the commits from #5553. Maybe with it all the above just disappears? |
closed in 2505fea |
Sorry for the beginner question but will this fix end up in an official build and retrospectively fix the issue? I don't know enough about coding or git to figure this out on my own. |
The fix will be in the next release, if you have existing broken data structure then that will need fixing manually – the best way to do so would be by unpublishing and re-publishing the document |
Glad you found it Tom. I will be able to test this with the next release, esp. with regards to fixing existing broken data structures. The previous tests left us with a large amount of candidates for the remediation strategy unpublish-republish. Are there dailies/nightlies of the main branch that one could test? Else I could also try from a source build, if feedback is needed earlier. |
I have now tested this with a fresh build from Note about running a source build with Docker Compose
Assuming a fresh clone with clean working area at the desired commit exists in a subdirectory called Converting an existing Docker Compose deployment from an …
services:
outline-base:
image: outlinewiki/outline-base
build:
context: ./outline/
dockerfile: Dockerfile.base
args:
pull: 1
profiles:
- donotstart
outline:
# image: outlinewiki/outline:$OUTLINE_IMAGE_TAG
build:
context: ./outline/
dockerfile: Dockerfile
args:
pull: 1
command: sh -c "yarn db:migrate --env production-ssl-disabled && yarn start"
… docker compose build outline-base
docker compose build outline (I think I have read once that Running a source build is also harder with the separation of the two Dockerfiles. Maybe it could be more convenient for long-term maintenance to have both stages in the same file. It seems this was partially resolved: Some of the published documents switched to only having one copy of their title in the sidebar or collection overview. Out of nine drafts, I was able to delete and publish almost half of them. Toggling deletion or publication status succeeded more often in the collection overview, than when a document was opened. Some documents could be deleted when they were unpublished. All documents that were completely published could be deleted. Some of the broken documents end up in a superposition that displays as being unpublished, and that offers the actions in both directions. A new error appears when trying to unpublish a document that was seen in the superposition, but is now published: {"label":"http","level":"info","message":" <-- POST /api/documents.unpublish"}
{"label":"http","level":"info","message":" xxx POST /api/documents.unpublish 500 32ms -"} The 500 error does not reveal further details when The same appears for documents in the superposition that were published. The superposition comes into place after Calls to Unpublished documents can also not be hit directly with their URL some times. One must go through the collection overview or the drafts list to access them. When successfully publishing a document, the same event is recognised by outline_1 | {"attempt":0,"event":{"actorId":"8553e03c-9135-4ea6-978a-ea80a1128db5","collectionId":"08de809f-4357-4204-9322-24103e3b8c13","createdAt":"2024-01-26T23:15:12.271Z","data":{"title":"Doppelte Titel titeln dem doppelten"},"documentId":"9b13eaad-c3c1-49b8-bf25-56f455d901e9","id":"0d3af33a-1204-452a-91f2-3718a0dc2c99","ip":"88.134.24.179","modelId":null,"name":"documents.publish","teamId":"7f96ac4b-2242-4023-8826-1d424c8b5e5e","userId":null},"la
bel":"worker","level":"info","message":"Processing documents.publish"}
outline_1 | {"event":{"actorId":"8553e03c-9135-4ea6-978a-ea80a1128db5","collectionId":"08de809f-4357-4204-9322-24103e3b8c13","createdAt":"2024-01-26T23:15:12.271Z","data":{"title":"Doppelte Titel titeln dem doppelten"},"documentId":"9b13eaad-c3c1-49b8-bf25-56f455d901e9","id":"0d3af33a-1204-452a-91f2-3718a0dc2c99","ip":"88.134.24.179","modelId":null,"name":"documents.publish","teamId":"7f96ac4b-2242-4023-8826-1d424c8b5e5e","userId":null},"label":"worker
","level":"info","message":"BacklinksProcessor running documents.publish"}
outline_1 | {"event":{"actorId":"8553e03c-9135-4ea6-978a-ea80a1128db5","collectionId":"08de809f-4357-4204-9322-24103e3b8c13","createdAt":"2024-01-26T23:15:12.271Z","data":{"title":"Doppelte Titel titeln dem doppelten"},"documentId":"9b13eaad-c3c1-49b8-bf25-56f455d901e9","id":"0d3af33a-1204-452a-91f2-3718a0dc2c99","ip":"88.134.24.179","modelId":null,"name":"documents.publish","teamId":"7f96ac4b-2242-4023-8826-1d424c8b5e5e","userId":null},"label":"worker
","level":"info","message":"NotificationsProcessor running documents.publish"}
outline_1 | {"event":{"actorId":"8553e03c-9135-4ea6-978a-ea80a1128db5","collectionId":"08de809f-4357-4204-9322-24103e3b8c13","createdAt":"2024-01-26T23:15:12.271Z","data":{"title":"Doppelte Titel titeln dem doppelten"},"documentId":"9b13eaad-c3c1-49b8-bf25-56f455d901e9","id":"0d3af33a-1204-452a-91f2-3718a0dc2c99","ip":"88.134.24.179","modelId":null,"name":"documents.publish","teamId":"7f96ac4b-2242-4023-8826-1d424c8b5e5e","userId":null},"label":"worker
","level":"info","message":"RevisionsProcessor running documents.publish"}
outline_1 | {"actorId":"8553e03c-9135-4ea6-978a-ea80a1128db5","collectionId":"08de809f-4357-4204-9322-24103e3b8c13","createdAt":"2024-01-26T23:15:12.271Z","data":{"title":"Doppelte Titel titeln dem doppelten"},"documentId":"9b13eaad-c3c1-49b8-bf25-56f455d901e9","id":"0d3af33a-1204-452a-91f2-3718a0dc2c99","ip":"88.134.24.179","label":"worker","level":"info","message":"DocumentPublishedNotificationsTask running","modelId":null,"name":"documents.publish",
"teamId":"7f96ac4b-2242-4023-8826-1d424c8b5e5e","userId":null}
outline_1 | {"event":{"actorId":"8553e03c-9135-4ea6-978a-ea80a1128db5","collectionId":"08de809f-4357-4204-9322-24103e3b8c13","createdAt":"2024-01-26T23:15:12.271Z","data":{"title":"Doppelte Titel titeln dem doppelten"},"documentId":"9b13eaad-c3c1-49b8-bf25-56f455d901e9","id":"0d3af33a-1204-452a-91f2-3718a0dc2c99","ip":"88.134.24.179","modelId":null,"name":"documents.publish","teamId":"7f96ac4b-2242-4023-8826-1d424c8b5e5e","userId":null},"label":"worker
","level":"info","message":"SlackProcessor running documents.publish"}
outline_1 | {"event":{"actorId":"8553e03c-9135-4ea6-978a-ea80a1128db5","collectionId":"08de809f-4357-4204-9322-24103e3b8c13","createdAt":"2024-01-26T23:15:12.271Z","data":{"title":"Doppelte Titel titeln dem doppelten"},"documentId":"9b13eaad-c3c1-49b8-bf25-56f455d901e9","id":"0d3af33a-1204-452a-91f2-3718a0dc2c99","ip":"88.134.24.179","modelId":null,"name":"documents.publish","teamId":"7f96ac4b-2242-4023-8826-1d424c8b5e5e","userId":null},"label":"worker
","level":"info","message":"WebhookProcessor running documents.publish" Also it seems the translation for two modals is not complete, or the wrong key is being used. In both cases it just says "document" instead of the title: 5 out of 9 broken drafts could be deleted with repeatingly toggling publication states and trying to delete, all from the sidebar, the collection overview or in the top-right of a document view. The last mystery pose documents which show as published in the main page, but cannot be deleted nor unpublished. When they get unpublished, they show up as a draft, but the context menu will be empty. Reloading the page shows them as complete documents again. POSTs to Interestingly the translation string for document is correct in another collection: One major caveat is here, that some calls to The second more confusing thing are the documents that are published, but only show up in the main overview, or in the recently changed tab of the collection overview. I'm now more confident to set up new instances, but will be happy about suggestions how to repair or delete the stuck documents, either being stuck in published state, or being undeletable in any publication state. |
When trying to open one of the garbled documents with accessing its direct URL, the POST call to Other documents created after 2505fea was included can be accessed directly. Judging that the database corruption will not occur anymore with the newer frontend logic, it appears the safest way to return this (testing-)instance to a consistent state will be a full export-import cycle with resetting the database state. Fortunately #6438 pretty much blocked onboarding users until now, why the amount of undesired side-effects is luckily minimal. |
There are a few documents in our instance, which appear multiple times in listings, such as the navigation sidebar, and in the document list of a collection.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
Any document is only listed once.
Screenshots
The documents called Untitled, Mondeggi and Digitales Verrotten appear multiple times here and there. Note the browser status bar indicating the same link destination when hovering the individual instances.
Screenshots
Here we also see
in effect.
This happened a while after collaborative editing was enabled, and was maybe caused by flaky connections. Yet since this is reproducible across browsers and platforms, it seems there may be some database corruption, which would need to be repaired. Or another regression some place else.
Outline:
0.72.0
Desktop:
Mobile:
This has been nagging me for a long time, and effectively stopped me from rolling out the application broadly. This might have to do with collaborative editing, but then I don't know how real-time versions are materialised to the database or how snapshots are being kept.
The text was updated successfully, but these errors were encountered: