ls1intum / Artemis

Artemis - Interactive Learning with Automated Feedback
https://docs.artemis.cit.tum.de
MIT License
505 stars 292 forks source link

Auto-Assessment: Retrieving requested submission failed #692

Closed Khalphion closed 5 years ago

Khalphion commented 5 years ago

Describe the bug

The modelling submissions with auto-assessment enabled can't be assessed.

To Reproduce

  1. Go to H10E03
  2. Click on 'Start new assessment'
  3. See error

Screenshots

image

Environment

 - OS: macOS Mojave 10.14.3
 - Browser: Chrome 75.0.3770.142
 - Version: Artemis 3.4.1

Output in Web Console

Server responds with HTTP 500

XHR finished loading: GET "".
XHR finished loading: GET "".
XHR finished loading: GET "".
XHR finished loading: GET "".
XHR finished loading: GET "".
zone.js:3372 GET https://artemis.ase.in.tum.de/api/exercises/614/modeling-submission-without-assessment?lock=true 500
_ @ zone.js:3372
t.scheduleTask @ zone.js:410
onScheduleTask @ zone.js:301
t.scheduleTask @ zone.js:404
e.scheduleTask @ zone.js:238
e.scheduleMacroTask @ zone.js:261
d @ zone.js:1194
(anonymous) @ zone.js:3405
i. @ zone.js:1518
(anonymous) @ breadcrumbs.js:380
(anonymous) @ http.js:1725
e._trySubscribe @ Observable.js:43
e.subscribe @ Observable.js:29
e.call @ tap.js:18
e.subscribe @ Observable.js:24
e.call @ tap.js:18
e.subscribe @ Observable.js:24
e.call @ tap.js:18
e.subscribe @ Observable.js:24
i @ subscribeToResult.js:13
n._innerSub @ mergeMap.js:74
n._tryNext @ mergeMap.js:68
n._next @ mergeMap.js:51
n.next @ Subscriber.js:53
(anonymous) @ subscribeToArray.js:5
e._trySubscribe @ Observable.js:43
e.subscribe @ Observable.js:29
e.call @ mergeMap.js:29
e.subscribe @ Observable.js:24
e.call @ filter.js:15
e.subscribe @ Observable.js:24
e.call @ map.js:18
e.subscribe @ Observable.js:24
loadOptimalSubmission @ modeling-assessment-editor.component.ts:113
(anonymous) @ modeling-assessment-editor.component.ts:85
n.__tryOrUnsub @ Subscriber.js:192
n.next @ Subscriber.js:130
n._next @ Subscriber.js:76
n.next @ Subscriber.js:53
n._subscribe @ BehaviorSubject.js:22
e._trySubscribe @ Observable.js:43
n._trySubscribe @ Subject.js:89
e.subscribe @ Observable.js:29
ngOnInit @ modeling-assessment-editor.component.ts:81
(anonymous) @ core.js:21776
(anonymous) @ core.js:29989
XO @ core.js:29951
wx @ core.js:30492
(anonymous) @ conflict-resolution-state.enum.ts:1
updateDirectives @ core.js:30280
QO @ core.js:29933
ox @ core.js:30174
lx @ core.js:30137
QO @ core.js:29934
ox @ core.js:30174
tx @ core.js:30116
QO @ core.js:29939
e.detectChanges @ core.js:21365
e.tick @ core.js:27620
(anonymous) @ core.js:27509
t.invoke @ zone.js:391
onInvoke @ core.js:26769
t.invoke @ zone.js:390
e.run @ zone.js:150
e.run @ core.js:26683
next @ core.js:27509
r @ core.js:24413
n.__tryOrUnsub @ Subscriber.js:192
n.next @ Subscriber.js:130
n._next @ Subscriber.js:76
n.next @ Subscriber.js:53
n.next @ Subject.js:47
n.emit @ core.js:24397
cy @ core.js:26738
onHasTask @ core.js:26782
t.hasTask @ zone.js:443
t._updateTaskCount @ zone.js:463
e._updateTaskCount @ zone.js:291
e.runTask @ zone.js:212
g @ zone.js:601
e.invokeTask @ zone.js:502
m @ zone.js:1693
b @ zone.js:1730
load (async)
D @ zone.js:1832
t.scheduleTask @ zone.js:410
onScheduleTask @ zone.js:301
t.scheduleTask @ zone.js:404
e.scheduleTask @ zone.js:238
e.scheduleEventTask @ zone.js:264
(anonymous) @ zone.js:2003
(anonymous) @ http.js:1713
e._trySubscribe @ Observable.js:43
e.subscribe @ Observable.js:29
e.call @ tap.js:18
e.subscribe @ Observable.js:24
e.call @ tap.js:18
e.subscribe @ Observable.js:24
e.call @ tap.js:18
e.subscribe @ Observable.js:24
i @ subscribeToResult.js:13
n._innerSub @ mergeMap.js:74
n._tryNext @ mergeMap.js:68
n._next @ mergeMap.js:51
n.next @ Subscriber.js:53
(anonymous) @ subscribeToArray.js:5
e._trySubscribe @ Observable.js:43
e.subscribe @ Observable.js:29
e.call @ mergeMap.js:29
e.subscribe @ Observable.js:24
e.call @ filter.js:15
e.subscribe @ Observable.js:24
(anonymous) @ Observable.js:98
t @ zone.js:931
e.toPromise @ Observable.js:96
identity @ account.service.ts:99
checkLogin @ user-route-access-service.ts:28
canActivate @ user-route-access-service.ts:22
(anonymous) @ router.js:3098
(anonymous) @ defer.js:9
e._trySubscribe @ Observable.js:43
e.subscribe @ Observable.js:29
e.call @ take.js:24
e.subscribe @ Observable.js:24
i @ subscribeToResult.js:13
n._innerSub @ mergeMap.js:74
n._tryNext @ mergeMap.js:68
n._next @ mergeMap.js:51
n.next @ Subscriber.js:53
(anonymous) @ subscribeToArray.js:5
e._trySubscribe @ Observable.js:43
e.subscribe @ Observable.js:29
e.call @ mergeMap.js:29
e.subscribe @ Observable.js:24
i @ subscribeToResult.js:13
n._complete @ combineLatest.js:62
n.complete @ Subscriber.js:65
(anonymous) @ subscribeToArray.js:7
e._trySubscribe @ Observable.js:43
e.subscribe @ Observable.js:29
e.call @ combineLatest.js:32
e.subscribe @ Observable.js:24
e.call @ scan.js:23
e.subscribe @ Observable.js:24
e.call @ filter.js:15
e.subscribe @ Observable.js:24
e.call @ map.js:18
e.subscribe @ Observable.js:24
e.call @ take.js:24
e.subscribe @ Observable.js:24
i @ subscribeToResult.js:13
n._innerSub @ switchMap.js:51
n._next @ switchMap.js:41
n.next @ Subscriber.js:53
(anonymous) @ subscribeToArray.js:5
e._trySubscribe @ Observable.js:43
e.subscribe @ Observable.js:29
e.call @ switchMap.js:19
e.subscribe @ Observable.js:24
i @ subscribeToResult.js:13
n._innerSub @ mergeMap.js:74
n._tryNext @ mergeMap.js:68
n._next @ mergeMap.js:51
n.next @ Subscriber.js:53
(anonymous) @ subscribeToArray.js:5
e._trySubscribe @ Observable.js:43
e.subscribe @ Observable.js:29
e.call @ mergeMap.js:29
e.subscribe @ Observable.js:24
e.call @ filter.js:15
e.subscribe @ Observable.js:24
e.call @ take.js:24
e.subscribe @ Observable.js:24
e.call @ defaultIfEmpty.js:15
e.subscribe @ Observable.js:24
i @ subscribeToResult.js:13
n._innerSub @ mergeMap.js:74
n._tryNext @ mergeMap.js:68
n._next @ mergeMap.js:51
n.next @ Subscriber.js:53
(anonymous) @ subscribeToArray.js:5
e._trySubscribe @ Observable.js:43
e.subscribe @ Observable.js:29
e.call @ mergeMap.js:29
e.subscribe @ Observable.js:24
e.call @ filter.js:15
e.subscribe @ Observable.js:24
e.call @ take.js:24
e.subscribe @ Observable.js:24
e.call @ defaultIfEmpty.js:15
e.subscribe @ Observable.js:24
i @ subscribeToResult.js:13
n._innerSub @ mergeMap.js:74
n._tryNext @ mergeMap.js:68
n._next @ mergeMap.js:51
n.next @ Subscriber.js:53
n._complete @ defaultIfEmpty.js:33
n.complete @ Subscriber.js:65
n._complete @ Subscriber.js:83
n.complete @ Subscriber.js:65
n._complete @ Subscriber.js:83
n.complete @ Subscriber.js:65
n._complete @ mergeMap.js:79
n.complete @ Subscriber.js:65
(anonymous) @ subscribeToArray.js:7
e._trySubscribe @ Observable.js:43
e.subscribe @ Observable.js:29
e.call @ mergeMap.js:29
e.subscribe @ Observable.js:24
e.call @ filter.js:15
e.subscribe @ Observable.js:24
e.call @ take.js:24
e.subscribe @ Observable.js:24
e.call @ defaultIfEmpty.js:15
e.subscribe @ Observable.js:24
e.call @ mergeMap.js:29
e.subscribe @ Observable.js:24
e.call @ map.js:18
e.subscribe @ Observable.js:24
i @ subscribeToResult.js:13
n._innerSub @ mergeMap.js:74
n._tryNext @ mergeMap.js:68
n._next @ mergeMap.js:51
n.next @ Subscriber.js:53
n._next @ map.js:41
n.next @ Subscriber.js:53
n._next @ tap.js:51
n.next @ Subscriber.js:53
n.notifyNext @ switchMap.js:72
n._next @ InnerSubscriber.js:15
n.next @ Subscriber.js:53
n._next @ map.js:41
n.next @ Subscriber.js:53
(anonymous) @ subscribeToArray.js:5
e._trySubscribe @ Observable.js:43
e.subscribe @ Observable.js:29
e.call @ map.js:18
e.subscribe @ Observable.js:24
i @ subscribeToResult.js:13
n._innerSub @ switchMap.js:51
n._next @ switchMap.js:41
n.next @ Subscriber.js:53
n.notifyNext @ switchMap.js:72
n._next @ InnerSubscriber.js:15
n.next @ Subscriber.js:53
n._next @ tap.js:51
n.next @ Subscriber.js:53
n._next @ tap.js:51
n.next @ Subscriber.js:53
n.notifyNext @ mergeMap.js:84
n._next @ InnerSubscriber.js:15
n.next @ Subscriber.js:53
n._next @ map.js:41
n.next @ Subscriber.js:53
(anonymous) @ subscribeToArray.js:5
e._trySubscribe @ Observable.js:43
e.subscribe @ Observable.js:29
e.call @ map.js:18
e.subscribe @ Observable.js:24
i @ subscribeToResult.js:13
n._innerSub @ mergeMap.js:74
n._tryNext @ mergeMap.js:68
n._next @ mergeMap.js:51
n.next @ Subscriber.js:53
n._next @ tap.js:51
n.next @ Subscriber.js:53
n.notifyNext @ switchMap.js:72
n._next @ InnerSubscriber.js:15
n.next @ Subscriber.js:53
n._next @ map.js:41
n.next @ Subscriber.js:53
n._next @ Subscriber.js:76
n.next @ Subscriber.js:53
n._next @ map.js:41
n.next @ Subscriber.js:53
n._next @ map.js:41
n.next @ Subscriber.js:53
n._next @ map.js:41
n.next @ Subscriber.js:53
n._next @ throwIfEmpty.js:32
n.next @ Subscriber.js:53
n._complete @ takeLast.js:57
n.complete @ Subscriber.js:65
n._complete @ mergeMap.js:79
Promise.then (async)
d @ zone.js:584
t.scheduleTask @ zone.js:413
onScheduleTask @ zone.js:301
t.scheduleTask @ zone.js:404
e.scheduleTask @ zone.js:238
e.scheduleMicroTask @ zone.js:258
R @ zone.js:900
t.then @ zone.js:1040
e.appInitializer @ router.js:5650
e.runInitializers @ core.js:26072
(anonymous) @ core.js:27273
(anonymous) @ core.js:27366
(anonymous) @ core.js:27271
t.invoke @ zone.js:391
onInvoke @ core.js:26769
t.invoke @ zone.js:390
e.run @ zone.js:150
e.run @ core.js:26683
e.bootstrapModuleFactory @ core.js:27259
(anonymous) @ app.main.ts:14
o @ bootstrap:63
(anonymous) @ bootstrap:198
(anonymous) @ bootstrap:198
Show 253 more frames
zone.js:3372 XHR failed loading: GET "https://artemis.ase.in.tum.de/api/exercises/614/modeling-submission-without-assessment?lock=true".
_ @ zone.js:3372
t.scheduleTask @ zone.js:410
onScheduleTask @ zone.js:301
t.scheduleTask @ zone.js:404
e.scheduleTask @ zone.js:238
e.scheduleMacroTask @ zone.js:261
d @ zone.js:1194
(anonymous) @ zone.js:3405
i. @ zone.js:1518
(anonymous) @ breadcrumbs.js:380
(anonymous) @ http.js:1725
e._trySubscribe @ Observable.js:43
e.subscribe @ Observable.js:29
e.call @ tap.js:18
e.subscribe @ Observable.js:24
e.call @ tap.js:18
e.subscribe @ Observable.js:24
e.call @ tap.js:18
e.subscribe @ Observable.js:24
i @ subscribeToResult.js:13
n._innerSub @ mergeMap.js:74
n._tryNext @ mergeMap.js:68
n._next @ mergeMap.js:51
n.next @ Subscriber.js:53
(anonymous) @ subscribeToArray.js:5
e._trySubscribe @ Observable.js:43
e.subscribe @ Observable.js:29
e.call @ mergeMap.js:29
e.subscribe @ Observable.js:24
e.call @ filter.js:15
e.subscribe @ Observable.js:24
e.call @ map.js:18
e.subscribe @ Observable.js:24
loadOptimalSubmission @ modeling-assessment-editor.component.ts:113
(anonymous) @ modeling-assessment-editor.component.ts:85
n.__tryOrUnsub @ Subscriber.js:192
n.next @ Subscriber.js:130
n._next @ Subscriber.js:76
n.next @ Subscriber.js:53
n._subscribe @ BehaviorSubject.js:22
e._trySubscribe @ Observable.js:43
n._trySubscribe @ Subject.js:89
e.subscribe @ Observable.js:29
ngOnInit @ modeling-assessment-editor.component.ts:81
(anonymous) @ core.js:21776
(anonymous) @ core.js:29989
XO @ core.js:29951
wx @ core.js:30492
(anonymous) @ conflict-resolution-state.enum.ts:1
updateDirectives @ core.js:30280
QO @ core.js:29933
ox @ core.js:30174
lx @ core.js:30137
QO @ core.js:29934
ox @ core.js:30174
tx @ core.js:30116
QO @ core.js:29939
e.detectChanges @ core.js:21365
e.tick @ core.js:27620
(anonymous) @ core.js:27509
t.invoke @ zone.js:391
onInvoke @ core.js:26769
t.invoke @ zone.js:390
e.run @ zone.js:150
e.run @ core.js:26683
next @ core.js:27509
r @ core.js:24413
n.__tryOrUnsub @ Subscriber.js:192
n.next @ Subscriber.js:130
n._next @ Subscriber.js:76
n.next @ Subscriber.js:53
n.next @ Subject.js:47
n.emit @ core.js:24397
cy @ core.js:26738
onHasTask @ core.js:26782
t.hasTask @ zone.js:443
t._updateTaskCount @ zone.js:463
e._updateTaskCount @ zone.js:291
e.runTask @ zone.js:212
g @ zone.js:601
e.invokeTask @ zone.js:502
m @ zone.js:1693
b @ zone.js:1730
load (async)
D @ zone.js:1832
t.scheduleTask @ zone.js:410
onScheduleTask @ zone.js:301
t.scheduleTask @ zone.js:404
e.scheduleTask @ zone.js:238
e.scheduleEventTask @ zone.js:264
(anonymous) @ zone.js:2003
(anonymous) @ http.js:1713
e._trySubscribe @ Observable.js:43
e.subscribe @ Observable.js:29
e.call @ tap.js:18
e.subscribe @ Observable.js:24
e.call @ tap.js:18
e.subscribe @ Observable.js:24
e.call @ tap.js:18
e.subscribe @ Observable.js:24
i @ subscribeToResult.js:13
n._innerSub @ mergeMap.js:74
n._tryNext @ mergeMap.js:68
n._next @ mergeMap.js:51
n.next @ Subscriber.js:53
(anonymous) @ subscribeToArray.js:5
e._trySubscribe @ Observable.js:43
e.subscribe @ Observable.js:29
e.call @ mergeMap.js:29
e.subscribe @ Observable.js:24
e.call @ filter.js:15
e.subscribe @ Observable.js:24
(anonymous) @ Observable.js:98
t @ zone.js:931
e.toPromise @ Observable.js:96
identity @ account.service.ts:99
checkLogin @ user-route-access-service.ts:28
canActivate @ user-route-access-service.ts:22
(anonymous) @ router.js:3098
(anonymous) @ defer.js:9
e._trySubscribe @ Observable.js:43
e.subscribe @ Observable.js:29
e.call @ take.js:24
e.subscribe @ Observable.js:24
i @ subscribeToResult.js:13
n._innerSub @ mergeMap.js:74
n._tryNext @ mergeMap.js:68
n._next @ mergeMap.js:51
n.next @ Subscriber.js:53
(anonymous) @ subscribeToArray.js:5
e._trySubscribe @ Observable.js:43
e.subscribe @ Observable.js:29
e.call @ mergeMap.js:29
e.subscribe @ Observable.js:24
i @ subscribeToResult.js:13
n._complete @ combineLatest.js:62
n.complete @ Subscriber.js:65
(anonymous) @ subscribeToArray.js:7
e._trySubscribe @ Observable.js:43
e.subscribe @ Observable.js:29
e.call @ combineLatest.js:32
e.subscribe @ Observable.js:24
e.call @ scan.js:23
e.subscribe @ Observable.js:24
e.call @ filter.js:15
e.subscribe @ Observable.js:24
e.call @ map.js:18
e.subscribe @ Observable.js:24
e.call @ take.js:24
e.subscribe @ Observable.js:24
i @ subscribeToResult.js:13
n._innerSub @ switchMap.js:51
n._next @ switchMap.js:41
n.next @ Subscriber.js:53
(anonymous) @ subscribeToArray.js:5
e._trySubscribe @ Observable.js:43
e.subscribe @ Observable.js:29
e.call @ switchMap.js:19
e.subscribe @ Observable.js:24
i @ subscribeToResult.js:13
n._innerSub @ mergeMap.js:74
n._tryNext @ mergeMap.js:68
n._next @ mergeMap.js:51
n.next @ Subscriber.js:53
(anonymous) @ subscribeToArray.js:5
e._trySubscribe @ Observable.js:43
e.subscribe @ Observable.js:29
e.call @ mergeMap.js:29
e.subscribe @ Observable.js:24
e.call @ filter.js:15
e.subscribe @ Observable.js:24
e.call @ take.js:24
e.subscribe @ Observable.js:24
e.call @ defaultIfEmpty.js:15
e.subscribe @ Observable.js:24
i @ subscribeToResult.js:13
n._innerSub @ mergeMap.js:74
n._tryNext @ mergeMap.js:68
n._next @ mergeMap.js:51
n.next @ Subscriber.js:53
(anonymous) @ subscribeToArray.js:5
e._trySubscribe @ Observable.js:43
e.subscribe @ Observable.js:29
e.call @ mergeMap.js:29
e.subscribe @ Observable.js:24
e.call @ filter.js:15
e.subscribe @ Observable.js:24
e.call @ take.js:24
e.subscribe @ Observable.js:24
e.call @ defaultIfEmpty.js:15
e.subscribe @ Observable.js:24
i @ subscribeToResult.js:13
n._innerSub @ mergeMap.js:74
n._tryNext @ mergeMap.js:68
n._next @ mergeMap.js:51
n.next @ Subscriber.js:53
n._complete @ defaultIfEmpty.js:33
n.complete @ Subscriber.js:65
n._complete @ Subscriber.js:83
n.complete @ Subscriber.js:65
n._complete @ Subscriber.js:83
n.complete @ Subscriber.js:65
n._complete @ mergeMap.js:79
n.complete @ Subscriber.js:65
(anonymous) @ subscribeToArray.js:7
e._trySubscribe @ Observable.js:43
e.subscribe @ Observable.js:29
e.call @ mergeMap.js:29
e.subscribe @ Observable.js:24
e.call @ filter.js:15
e.subscribe @ Observable.js:24
e.call @ take.js:24
e.subscribe @ Observable.js:24
e.call @ defaultIfEmpty.js:15
e.subscribe @ Observable.js:24
e.call @ mergeMap.js:29
e.subscribe @ Observable.js:24
e.call @ map.js:18
e.subscribe @ Observable.js:24
i @ subscribeToResult.js:13
n._innerSub @ mergeMap.js:74
n._tryNext @ mergeMap.js:68
n._next @ mergeMap.js:51
n.next @ Subscriber.js:53
n._next @ map.js:41
n.next @ Subscriber.js:53
n._next @ tap.js:51
n.next @ Subscriber.js:53
n.notifyNext @ switchMap.js:72
n._next @ InnerSubscriber.js:15
n.next @ Subscriber.js:53
n._next @ map.js:41
n.next @ Subscriber.js:53
(anonymous) @ subscribeToArray.js:5
e._trySubscribe @ Observable.js:43
e.subscribe @ Observable.js:29
e.call @ map.js:18
e.subscribe @ Observable.js:24
i @ subscribeToResult.js:13
n._innerSub @ switchMap.js:51
n._next @ switchMap.js:41
n.next @ Subscriber.js:53
n.notifyNext @ switchMap.js:72
n._next @ InnerSubscriber.js:15
n.next @ Subscriber.js:53
n._next @ tap.js:51
n.next @ Subscriber.js:53
n._next @ tap.js:51
n.next @ Subscriber.js:53
n.notifyNext @ mergeMap.js:84
n._next @ InnerSubscriber.js:15
n.next @ Subscriber.js:53
n._next @ map.js:41
n.next @ Subscriber.js:53
(anonymous) @ subscribeToArray.js:5
e._trySubscribe @ Observable.js:43
e.subscribe @ Observable.js:29
e.call @ map.js:18
e.subscribe @ Observable.js:24
i @ subscribeToResult.js:13
n._innerSub @ mergeMap.js:74
n._tryNext @ mergeMap.js:68
n._next @ mergeMap.js:51
n.next @ Subscriber.js:53
n._next @ tap.js:51
n.next @ Subscriber.js:53
n.notifyNext @ switchMap.js:72
n._next @ InnerSubscriber.js:15
n.next @ Subscriber.js:53
n._next @ map.js:41
n.next @ Subscriber.js:53
n._next @ Subscriber.js:76
n.next @ Subscriber.js:53
n._next @ map.js:41
n.next @ Subscriber.js:53
n._next @ map.js:41
n.next @ Subscriber.js:53
n._next @ map.js:41
n.next @ Subscriber.js:53
n._next @ throwIfEmpty.js:32
n.next @ Subscriber.js:53
n._complete @ takeLast.js:57
n.complete @ Subscriber.js:65
n._complete @ mergeMap.js:79
Promise.then (async)
d @ zone.js:584
t.scheduleTask @ zone.js:413
onScheduleTask @ zone.js:301
t.scheduleTask @ zone.js:404
e.scheduleTask @ zone.js:238
e.scheduleMicroTask @ zone.js:258
R @ zone.js:900
t.then @ zone.js:1040
e.appInitializer @ router.js:5650
e.runInitializers @ core.js:26072
(anonymous) @ core.js:27273
(anonymous) @ core.js:27366
(anonymous) @ core.js:27271
t.invoke @ zone.js:391
onInvoke @ core.js:26769
t.invoke @ zone.js:390
e.run @ zone.js:150
e.run @ core.js:26683
e.bootstrapModuleFactory @ core.js:27259
(anonymous) @ app.main.ts:14
o @ bootstrap:63
(anonymous) @ bootstrap:198
(anonymous) @ bootstrap:198
Show 253 more frames
Khalphion commented 5 years ago

I'd like to emphasise that this is a very urgent issue; none of the tutors can't assess this exercise right now and the assessment due date will be over on Sunday midnight.

krusche commented 5 years ago

This problem was due to a migration of Compass. Compass is significantly faster, however we did not handle a case with the old version of Compass that was already available on production.

Therefore, we had 2 results for the same submission which led to a database error. After cleaning the 'wrong' results in the production database, the error does not occur any more.

In addition, @SiggZ will make sure that Artemis won't try to store 2 results again for the same submission.

krusche commented 5 years ago

I'd like to emphasise that this is a very urgent issue; none of the tutors can't assess this exercise right now and the assessment due date will be over on Sunday midnight.

We now how urgent this is.

That's why I notified the developer this morning at 6:30 am after trying to fix the problem myself for more than 30 minutes. He searched for the problem for more than 2 hours and after a team session over Skype we finally found the problem and could fix it.

krusche commented 5 years ago

This was already fixed, it was a database problem