Let's see if it's only one and get info from the DB.
Run this query:
select * from `mdl_files` where `contenthash` like "0d74d5947507bca548de06af166f8513fa3a0048"
What does that show/list?
Work around? We'll give Moodle what it's looking for ... but not really.
Manually, with whatever tool you have to work with files/browse files ...
First browse to moodledata and see if there is a '0d' directory. If there is NOT create one. Set permissions and ownerships like the other folders you see in that area. If there is a '0d' directory, see if there is a '74' directory inside. If not, create one (permissions/ownerships same as folders/files above). Inside the '74' directory is there a '0d74d5947507bca548de06af166f8513fa3a0048' file? If not, create a text file with that as the filename. Same ownership/permissions as files/folders above it.
From the trace, looks like trying to update a file that was still in draft.
When you run cron jobs there are routines that deal with file system and does move files from draft to a component area (doesn't really 'move' physically, rather the reference in the DB is 'moved'. Are there any errors in running cron?
Since you've been running a long time, same database? Have any tools to check the status of tables - especially the mdl_files table status?
'spirit of sharing', Ken