Uploaded files missing

Discussion created by wt0069224 on Mar 6, 2019
Latest reply on May 7, 2019 by wt0069224

Hi everyone,


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):


Course contents:

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.


Assessment submissions:

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.


Assessment feedback:

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.