Moving pages or page trees results in broken attachments

Still need help?

The Atlassian Community is here for you.

Ask the community


Platform notice: Server and Data Center only. This article only applies to Atlassian products on the Server and Data Center platforms.

Support for Server* products ended on February 15th 2024. If you are running a Server product, you can visit the Atlassian Server end of support announcement to review your migration options.

*Except Fisheye and Crucible

tip/resting Created with Sketch.

We've fixed this issue in Confluence 8.1 and later versions by introducing a more robust way of storing attachments that will prevent broken or missing attachments during page moves. Learn more about the attachment directory



Summary

After moving pages or page tree, attachment become broken on moved pages.

Environment

Confluence installed on Windows OS

Diagnosis

The following errors can be seen in atlassian-confluence.log

ERROR [Long running task: Move Page] [atlassian.confluence.event.ConfluenceEventDispatcher] run There was an exception thrown trying to dispatch event [com.atlassian.confluence.event.events.content.page.PageMoveEvent@6271dc2f[theMover=ConfluenceUserImpl...{details of content being moved}
...
com.atlassian.confluence.event.events.content.page.PageMoveEvent), listener=com.atlassian.confluence.pages.persistence.dao.filesystem.UpdateAttachmentsOnFilesystemOnPageMoveListener@123456} (timed)]
 -- referer: http://confluence:8090/display/SPACEKEY/PAGE_NAME | url: /pages/movepage.action | traceId: 1a2s3d4f5g6h | userName: username | action: movepage
java.lang.RuntimeException: Failed to move the attachment data. Listener: com.atlassian.confluence.pages.persistence.dao.filesystem.UpdateAttachmentsOnFilesystemOnPageMoveListener event: com.atlassian.confluence.event.events.content.page.PageMoveEvent
...
Caused by: com.atlassian.confluence.pages.persistence.dao.filesystem.UpdateAttachmentsOnFileSystemException: Failed to move the attachment data
...
Caused by: com.atlassian.confluence.pages.persistence.dao.filesystem.AttachmentDataFileSystemException: Could not move the attachment data along with the page for move of page [Page Title]
...
Caused by: java.io.IOException: Unable to delete file: c:/path/to/file
	at org.apache.commons.io.FileUtils.forceDelete(FileUtils.java:2400)
	at org.apache.commons.io.FileUtils.cleanDirectory(FileUtils.java:1721)

Cause

Windows has detailed permissions control and Delete Permission can be explicitly disabled.

If that happens, account used to run Confluence will fail to move the attachments stored in file system, as moving operation would require for the physical file to be removed from its old location. 

Solution

Make sure Confluence service is running with a dedicated account and that account has Full Permissions to it's home directory as per Creating a Dedicated User Account on the Operating System to Run Confluence 

As all attachments would still exist in Attachment folder within their appropriate content ID directories, you can use python script from How to resolve missing attachments in Confluence KB to manually move them under new location within file system hierarchy




Last modified on Feb 17, 2023

Was this helpful?

Yes
No
Provide feedback about this article
Powered by Confluence and Scroll Viewport.