We've been having an occasional issue with uploaded files being stored in the wrong place and subsequently deleted, and I thought I might reach out to the community to see if anyone else has noticed it.
As far as I can tell, when a file is uploaded, it is initially stored in a 'sessions' directory within the content collection, and then transferred to its proper, permanent location within the courses directory of the content collection afterwards. Sometimes this subsequent transfer fails, and it's left in the temporary location, which is wiped clean when the uploader's user session is ended. Once the file is deleted from the sessions directory, it's gone for good and we have to get the user to re-upload. One of the problems with this bug is that it's subtle - the uploader will see the file is attached, and even be able to re-download it. It's only 3 hours after they logout that the file disappears.
We're on SaaS 3500.9.
The following database queries will identify the affected content (we use DDA, but you could probably get Blackboard support to run them for you if you don't have that):
select cm.course_id, cc.pk1, cc.parent_pk1, cc2.title, cc.main_data from course_contents cc inner join course_main cm on cm.pk1 = cc.crsmain_pk1 inner join course_contents cc2 on cc2.pk1 = cc.parent_pk1 where cc.main_data like '%@X@EmbeddedFile.requestUrlStub@X@sessions%' and cc.copy_from_pk1 is null order by cc.dtcreated desc
Caveat: there are many cases where a metadata attribute, data-bbfile, contains a resource_url field that has this /sessions/ link, which has no effect to the end user, although I still think it's undesirable. We have 1350 results to this query, 145 of which have end-user effects.
select a.pk1, a.student_submission, a.attempt_date, cm.course_id from attempt a inner join gradebook_grade gg on gg.pk1 = a.gradebook_grade_pk1 inner join gradebook_main gm on gm.pk1 = gg.gradebook_main_pk1 inner join course_main cm on cm.pk1 = gm.crsmain_pk1 where a.student_submission like '%@X@EmbeddedFile.requestUrlStub@X@sessions%'
Same caveat as for course contents. We have 52 true failures, and 15045 resource_url false positives.
select cm.course_id, a.pk1, a.instructor_comments from attempt a inner join gradebook_grade gg on a.gradebook_grade_pk1 = gg.pk1 inner join course_users cu on cu.pk1 = gg.course_users_pk1 inner join gradebook_main gm on gg.gradebook_main_pk1 = gm.pk1 inner join course_main cm on gm.crsmain_pk1 = cm.pk1 where a.instructor_comments like '% href="@X@EmbeddedFile.location@X@%'
We have 318 failures, above caveat doesn't apply.
Announcements (Original only, since Ultra is plain-text)
select cm.course_id, cm.ultra_status, an.dtcreated, an.dtmodified, an.announcement, an.subject from announcements an inner join course_main cm on cm.pk1 = an.crsmain_pk1 where an.announcement like '%@X@EmbeddedFile.requestUrlStub@X@sessions%'
We have 131 failures, above caveat doesn't apply.
Anyone else having this problem? We've raised it with BtBb, but haven't had any suggestions for a fix.