First some background. On a computer, files are identified based on their full path and any file can be accessed with any application. When you click on a PDF file in Zotero on your computer, Zotero launches your PDF viewer application, checks the path of the file that you clicked, and tells the PDF viewer to open a file from this path. If you make annotations in the file, they are saved directly. iOS devices work a bit differently. The main difference is that each application can access only its own files, and this has a major impact on how files are processed between applications. When you send a file from ZotPad to another app, a new copy of the file is created inside the receiving application. Because of this the file needs to be sent back to ZotPad for the changes to be updated there. An analogy would be that the Apps on iOS are emailing files back and forth where as on computer applications are using a shared network drive.
The way files are handled in iOS creates a problem of how the files can be identified. For example, consider that you have 10 articles imported from ScienceDirect with PDF. Each of these PDF files is named 'sdarticle.pdf'. On a computer this does not create a problem because each file is stored in different location inside Zotero. However, on ZotPad, the original path is not known because files are copied instead of passed as file locations between applications. So when ZotPad receives a file called 'sdarticle.pdf', it cannot know which of the ten possible items this PDF belongs to. ZotPad solves this problem by adding an eight character alphanumerical identifier at the end of each file that it stores. This makes the filenames unique and allows ZotPad to identify which item a file blongs to.
So what can go wrong in this approach then?
When ZotPad receives a file from another application, it tries to identify it based on the eight character identifier stored at the end of the file name. This can fail for two reasons: Files that do not originate from ZotPad do not have the identifier in their file names. Because ZotPad cannot know which item the file belongs to, it will be rejected. Starting from version 1.3 ZotPad will offer the option of adding the file as a new attachment, but this is currently not implemented.
The second reason a file identification can fail is that the identifier in the filename does not match an existing identifier in the database. This can happen if the item has not been cached or if it has been deleted on the server. If this happens, the workaround is to open the item that the file belongs to in the item detail view, which will reload the data for that item from the Zotero server and then try sending the file to ZotPad again.