Closed vitorsemeano closed 3 months ago
Following this issue, i made some debug in the existing py files in pytapo lib (hardcoded logging) and i managed to grab what was causing this abrupt failure and eventual retry.
For the file session.py, method _device_response_handler_loop, it triggers the following error: "Received response with no or invalid session information". I placed here logs to indicate the content of the request that was causing this error, and i got this:
headers:
b'\r\nContent-Type: application/json\r\nContent-Length: 85\r\nX-If-Encrypt: 0\r\n\r\n'
body:
b'{"type":"notification", "params":{"event_type":"stream_status", "status":"finished"}}'
What causes this method to fail is the missing session information in headers or in the body. This is also happening before all segments are expected to be sent. So for a length of 91, this is happening at the length of 81.
I am not familiar with the inter works of this lib, but i believe that a case can be placed when this body is received, terminating the reception of more chunks from the server because there aren't, according to this body.
Do you think this is a plausible solution for this situation? Let me know
Thank you for the investigation @vitorsemeano .
Yes I do think that would be a good solution. I have never seen that message before, must be new or maybe they fixed some bug they had before.
Is this something you could try opening a PR for? It would be hard for me to test/debug this since I am not encountering the error myself.
Description
After enabling synchronization of recordings, I can see almost all recordings of my tapo camera.
My camera is a tapo C220.
Problem is that some specific records fails to complete the download. When I go the the sync entity in home asssistant i can see it tries to download specific record and after some time, jumps to retry, then download, in a endless loop of the same record(s). Majority of them succeeds and i am able to view them in home assistant.
the behavior is something like this:
Reproduction Steps
Expected behavior
I would hope that the download completes and stops retrying.
If applicable, add error logs.
Seeing the logs i have this errors (fragment of it but all errors found about this integration are more of these):
2024-02-22 11:30:01.785 WARNING (MainThread) [pytapo.media_stream.session] Received response with no or invalid session information (sequence None, session None), can't be delivered 2024-02-22 11:33:14.332 WARNING (MainThread) [pytapo.media_stream.session] Received response with no or invalid session information (sequence None, session None), can't be delivered 2024-02-22 11:33:24.304 WARNING (MainThread) [custom_components.tapo_control] Failed to get file from cold storage: /tapoControl//videos/1708588904-1708589086.mp4 2024-02-22 11:35:07.841 WARNING (MainThread) [pytapo.media_stream.session] Received response with no or invalid session information (sequence None, session None), can't be delivered 2024-02-22 11:36:48.576 WARNING (MainThread) [pytapo.media_stream.session] Received response with no or invalid session information (sequence None, session None), can't be delivered 2024-02-22 11:36:58.577 WARNING (MainThread) [custom_components.tapo_control] Failed to get file from cold storage: /tapoControl//videos/1708174687-1708174778.mp4 2024-02-22 11:40:01.896 WARNING (MainThread) [pytapo.media_stream.session] Received response with no or invalid session information (sequence None, session None), can't be delivered 2024-02-22 11:43:14.442 WARNING (MainThread) [pytapo.media_stream.session] Received response with no or invalid session information (sequence None, session None), can't be delivered 2024-02-22 11:43:24.396 WARNING (MainThread) [custom_components.tapo_control] Failed to get file from cold storage: /tapoControl//videos/1708588904-1708589086.mp4 2024-02-22 11:45:07.786 WARNING (MainThread) [pytapo.media_stream.session] Received response with no or invalid session information (sequence None, session None), can't be delivered
Device Firmware
1.1.6 Build 231208 Rel.66881n
Integration Version
5.4.14
Using stream component
Yes
Does camera work via official integrations?
Yes
Camera has all attributes filled out in developer tools
Yes
HASS Environment
Docker on ubuntu server 22.04 lts
Search for similar issues
Yes
Additional information
I also found this similar issues but not sure if related:
https://github.com/JurajNyiri/pytapo/issues/93
https://github.com/JurajNyiri/HomeAssistant-Tapo-Control/issues/499
In the meantime, i disabled the sync worker, because this endless retries brings my camera unresponsive after some time.