I have a backend that works with Python and serves an API with Flask. The API is consumed by an Angular frontend for video streaming. It works fine on my local PC, but after building a Docker image of the backend and deploying it to SaladCloud, it no longer works.
When I test the API separately, it works. I can set the camera index and request the video feed, and it functions correctly. However, in Angular, it fails even though it works on my local PC. When I check the network tab in Chrome’s developer tools, it shows me this:
RTSP URL: rtsp://admin:[email protected]:554/onvif1
gender-age.component.ts:33
POST https://garlic-2hvamdl7lswer2d4.salad.cloud/age_gender/set_camera_index 500 (Internal Server Error)
scheduleTask @ zone.js:2645
scheduleTask @ zone.js:389
onScheduleTask @ core.mjs:10752
scheduleTask @ zone.js:382
onScheduleTask @ zone.js:279
scheduleTask @ zone.js:382
scheduleTask @ zone.js:216
scheduleMacroTask @ zone.js:239
scheduleMacroTaskWithCurrentZone @ zone.js:672
(anonymous) @ zone.js:2678
proto.<computed> @ zone.js:962
(anonymous) @ http.mjs:2190
_trySubscribe @ Observable.js:37
(anonymous) @ Observable.js:31
errorContext @ errorContext.js:19
subscribe @ Observable.js:22
source.subscribe.isComplete @ switchMap.js:14
OperatorSubscriber._next @ OperatorSubscriber.js:13
next @ Subscriber.js:31
(anonymous) @ innerFrom.js:51
_trySubscribe @ Observable.js:37
(anonymous) @ Observable.js:31
errorContext @ errorContext.js:19
subscribe @ Observable.js:22
(anonymous) @ switchMap.js:10
(anonymous) @ lift.js:10
(anonymous) @ Observable.js:26
errorContext @ errorContext.js:19
subscribe @ Observable.js:22
(anonymous) @ finalize.js:5
(anonymous) @ lift.js:10
(anonymous) @ Observable.js:26
errorContext @ errorContext.js:19
subscribe @ Observable.js:22
(anonymous) @ finalize.js:5
(anonymous) @ lift.js:10
(anonymous) @ Observable.js:26
errorContext @ errorContext.js:19
subscribe @ Observable.js:22
doInnerSub @ mergeInternals.js:19
outerNext @ mergeInternals.js:14
OperatorSubscriber._next @ OperatorSubscriber.js:13
next @ Subscriber.js:31
(anonymous) @ innerFrom.js:51
_trySubscribe @ Observable.js:37
(anonymous) @ Observable.js:31
errorContext @ errorContext.js:19
subscribe @ Observable.js:22
mergeInternals @ mergeInternals.js:50
(anonymous) @ mergeMap.js:13
(anonymous) @ lift.js:10
(anonymous) @ Observable.js:26
errorContext @ errorContext.js:19
subscribe @ Observable.js:22
(anonymous) @ filter.js:6
(anonymous) @ lift.js:10
(anonymous) @ Observable.js:26
errorContext @ errorContext.js:19
subscribe @ Observable.js:22
(anonymous) @ map.js:6
(anonymous) @ lift.js:10
(anonymous) @ Observable.js:26
errorContext @ errorContext.js:19
subscribe @ Observable.js:22
updateVideoFeed @ gender-age.component.ts:33
GenderAgeComponent_Template_button_click_17_listener @ gender-age.component.html:12
executeListenerWithErrorHandling @ core.mjs:16795
wrapListenerIn_markDirtyAndPreventDefault @ core.mjs:16828
(anonymous) @ platform-browser.mjs:665
invokeTask @ zone.js:402
(anonymous) @ core.mjs:10757
onInvokeTask @ core.mjs:10757
invokeTask @ zone.js:401
onInvokeTask @ core.mjs:11070
invokeTask @ zone.js:401
runTask @ zone.js:173
invokeTask @ zone.js:483
invokeTask @ zone.js:1631
globalCallback @ zone.js:1662
globalZoneAwareCallback @ zone.js:1695
Show 78 more frames
Show lessUnderstand this error
gender-age.component.ts:37 Error setting camera index HttpErrorResponse {headers: HttpHeaders, status: 500, statusText: 'OK', url: 'https://garlic-2hvamdl7lswer2d4.salad.cloud/age_gender/set_camera_index', ok: false, …}
(anonymous) @ gender-age.component.ts:37
error @ Subscriber.js:102
_error @ Subscriber.js:64
error @ Subscriber.js:40
_error @ Subscriber.js:64
error @ Subscriber.js:40
_error @ Subscriber.js:64
error @ Subscriber.js:40
_error @ Subscriber.js:64
error @ Subscriber.js:40
_error @ Subscriber.js:64
error @ Subscriber.js:40
onLoad @ http.mjs:2103
invokeTask @ zone.js:402
(anonymous) @ core.mjs:10757
onInvokeTask @ core.mjs:10757
invokeTask @ zone.js:401
onInvokeTask @ core.mjs:11070
invokeTask @ zone.js:401
runTask @ zone.js:173
invokeTask @ zone.js:483
invokeTask @ zone.js:1631
globalCallback @ zone.js:1674
globalZoneAwareCallback @ zone.js:1695
Zone - XMLHttpRequest.addEventListener:load (async)
onScheduleTask @ core.mjs:10751
scheduleTask @ zone.js:382
onScheduleTask @ zone.js:279
scheduleTask @ zone.js:382
scheduleTask @ zone.js:216
scheduleEventTask @ zone.js:242
(anonymous) @ zone.js:1934
(anonymous) @ http.mjs:2176
_trySubscribe @ Observable.js:37
(anonymous) @ Observable.js:31
errorContext @ errorContext.js:19
subscribe @ Observable.js:22
source.subscribe.isComplete @ switchMap.js:14
OperatorSubscriber._next @ OperatorSubscriber.js:13
next @ Subscriber.js:31
(anonymous) @ innerFrom.js:51
_trySubscribe @ Observable.js:37
(anonymous) @ Observable.js:31
errorContext @ errorContext.js:19
subscribe @ Observable.js:22
(anonymous) @ switchMap.js:10
(anonymous) @ lift.js:10
(anonymous) @ Observable.js:26
errorContext @ errorContext.js:19
subscribe @ Observable.js:22
(anonymous) @ finalize.js:5
(anonymous) @ lift.js:10
(anonymous) @ Observable.js:26
errorContext @ errorContext.js:19
subscribe @ Observable.js:22
(anonymous) @ finalize.js:5
(anonymous) @ lift.js:10
(anonymous) @ Observable.js:26
errorContext @ errorContext.js:19
subscribe @ Observable.js:22
doInnerSub @ mergeInternals.js:19
outerNext @ mergeInternals.js:14
OperatorSubscriber._next @ OperatorSubscriber.js:13
next @ Subscriber.js:31
(anonymous) @ innerFrom.js:51
_trySubscribe @ Observable.js:37
(anonymous) @ Observable.js:31
errorContext @ errorContext.js:19
subscribe @ Observable.js:22
mergeInternals @ mergeInternals.js:50
(anonymous) @ mergeMap.js:13
(anonymous) @ lift.js:10
(anonymous) @ Observable.js:26
errorContext @ errorContext.js:19
subscribe @ Observable.js:22
(anonymous) @ filter.js:6
(anonymous) @ lift.js:10
(anonymous) @ Observable.js:26
errorContext @ errorContext.js:19
subscribe @ Observable.js:22
(anonymous) @ map.js:6
(anonymous) @ lift.js:10
(anonymous) @ Observable.js:26
errorContext @ errorContext.js:19
subscribe @ Observable.js:22
updateVideoFeed @ gender-age.component.ts:33
GenderAgeComponent_Template_button_click_17_listener @ gender-age.component.html:12
executeListenerWithErrorHandling @ core.mjs:16795
wrapListenerIn_markDirtyAndPreventDefault @ core.mjs:16828
(anonymous) @ platform-browser.mjs:665
invokeTask @ zone.js:402
(anonymous) @ core.mjs:10757
onInvokeTask @ core.mjs:10757
invokeTask @ zone.js:401
onInvokeTask @ core.mjs:11070
invokeTask @ zone.js:401
runTask @ zone.js:173
invokeTask @ zone.js:483
invokeTask @ zone.js:1631
globalCallback @ zone.js:1662
globalZoneAwareCallback @ zone.js:1695
Show 97 more frames
Show lessUnderstand this error
Chiheb Nouri is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.