Skip to content
This repository was archived by the owner on Sep 28, 2025. It is now read-only.

Bug: Max Image Downloads Response Not Triggering Cooldown #131

@Grosner300

Description

@Grosner300

Describe the Bug

Findings

  • Stream Master receives Schedules Direct "Max image downloads" response multiple times.
  • Stream Master does not pause image downloads as expected when this response is received.

Analysis

  • It appears a 200 OK HTTP response is returned from Schedules Direct, so the error code in the token or response body is not parsed.

  • As a result, no cooldown is set, leading to repeated triggering of the max downloads condition.

See http info here:

SM_http_request_response.txt

Steps to Reproduce

  • Download more images than allowed by Schedules Direct (e.g. 14 days for more than 128 channels).
  • Alternatively, use unit test that tests a 200 response MAX_IMAGE_DOWNLOADS message.

Stream Master Version

https://github.com/carlreid/StreamMaster/tree/issue-127

Relevant Logs

Excerpt:
"2025-06-01 20:47:00","Information","0","","Downloaded series images 348 of 348",
"2025-06-01 20:47:00","Information","0","","Exiting Series Images SUCCESS.",
"2025-06-01 20:47:00","Warning","0","","Unexpected JSON response for GetImageAsync request to https://json.schedulesdirect.org/20141201/image/{REDACTED}.jpg. Content: {""response"":""MAX_IMAGE_DOWNLOADS"",""code"":5002,""serverID"":""20141201.web"",""message"":""Maximum image downloads reached. Counter resets every 24h. Post message to http:\/\/forums.schedulesdirect.org\/viewforum.php?f=6"",""datetime"":""2025-06-01T20:46:59Z"",""serverTime"":1748810819}",
Older log excerpts

"2025-06-01 17:54:31","Warning","0","","HTTP Unauthorized for GetImageAsync request to https://json.schedulesdirect.org/20141201/image/{redacted}.jpg. Response: {""response"":""INVALID_USER"",""code"":4003,""serverID"":""20141201.web"",""message"":""Invalid username or token has expired."",""datetime"":""2025-06-01T17:54:31Z"",""serverTime"":1748800471}",
"2025-06-01 17:54:31","Warning","0","","Token cleared.",
"2025-06-01 17:54:31","Information","0","","Token refreshed successfully. Token=45c7a...",

"2025-06-01 17:56:31","Warning","0","","Token cleared.",
"2025-06-01 17:56:31","Error","0","","/20141201/image/{redacted}.jpg: 401 Unauthorized : Token=45c7a...
{""response"":""INVALID_USER"",""code"":4003,""serverID"":""20141201.web"",""message"":""Invalid username or token has expired."",""datetime"":""2025-06-01T17:56:31Z"",""serverTime"":1748800591}",
"2025-06-01 17:56:31","Warning","0","","HTTP Unauthorized for GetImageAsync request to https://json.schedulesdirect.org/20141201/image/{redacted}.jpg. Response: {""response"":""INVALID_USER"",""code"":4003,""serverID"":""20141201.web"",""message"":""Invalid username or token has expired."",""datetime"":""2025-06-01T17:56:31Z"",""serverTime"":1748800591}",

"2025-06-01 17:56:31","Warning","0","","Token cleared.",
"2025-06-01 17:56:31","Information","0","","Token refreshed successfully. Token=45c7a...",

"2025-06-01 18:13:26","Warning","0","","Unexpected JSON response for GetImageAsync request to https://json.schedulesdirect.org/20141201/image/{redacted}.jpg. Content: {""response"":""MAX_IMAGE_DOWNLOADS"",""code"":5002,""serverID"":""20141201.web"",""message"":""Maximum image downloads reached. Counter resets every 24h. Post message to http:\/\/forums.schedulesdirect.org\/viewforum.php?f=6"",""datetime"":""2025-06-01T18:13:26Z"",""serverTime"":1748801606}",

"2025-06-01 18:13:27","Warning","0","","Unexpected JSON response for GetImageAsync request to https://json.schedulesdirect.org/20141201/image/{redacted}.jpg. Content: {""response"":""MAX_IMAGE_DOWNLOADS"",""code"":5002,""serverID"":""20141201.web"",""message"":""Maximum image downloads reached. Counter resets every 24h. Post message to http:\/\/forums.schedulesdirect.org\/viewforum.php?f=6"",""datetime"":""2025-06-01T18:13:27Z"",""serverTime"":1748801607}",

"2025-06-01 18:13:27","Warning","0","","Unexpected JSON response for GetImageAsync request to https://json.schedulesdirect.org/20141201/image/{redacted}.jpg. Content: {""response"":""MAX_IMAGE_DOWNLOADS"",""code"":5002,""serverID"":""20141201.web"",""message"":""Maximum image downloads reached. Counter resets every 24h. Post message to http:\/\/forums.schedulesdirect.org\/viewforum.php?f=6"",""datetime"":""2025-06-01T18:13:27Z"",""serverTime"":1748801607}",
"2025-06-01 18:13:27","Warning","0","","Unexpected JSON response for GetImageAsync request to https://json.schedulesdirect.org/20141201/image/{redacted}.jpg. Content: {""response"":""MAX_IMAGE_DOWNLOADS"",""code"":5002,""serverID"":""20141201.web"",""message"":""Maximum image downloads reached. Counter resets every 24h. Post message to http:\/\/forums.schedulesdirect.org\/viewforum.php?f=6"",""datetime"":""2025-06-01T18:13:27Z"",""serverTime"":1748801607}",
"2025-06-01 18:13:27","Warning","0","","Unexpected JSON response for GetImageAsync request to https://json.schedulesdirect.org/20141201/image/{redacted}.jpg. Content: {""response"":""MAX_IMAGE_DOWNLOADS"",""code"":5002,""serverID"":""20141201.web"",""message"":""Maximum image downloads reached. Counter resets every 24h. Post message to http:\/\/forums.schedulesdirect.org\/viewforum.php?f=6"",""datetime"":""2025-06-01T18:13:27Z"",""serverTime"":1748801607}",
"2025-06-01 18:13:27","Warning","0","","Unexpected JSON response for GetImageAsync request to https://json.schedulesdirect.org/20141201/image/{redacted}.jpg. Content: {""response"":""MAX_IMAGE_DOWNLOADS"",""code"":5002,""serverID"":""20141201.web"",""message"":""Maximum image downloads reached. Counter resets every 24h. Post message to http:\/\/forums.schedulesdirect.org\/viewforum.php?f=6"",""datetime"":""2025-06-01T18:13:27Z"",""serverTime"":1748801607}",
"2025-06-01 18:13:27","Warning","0","","Unexpected JSON response for GetImageAsync request to https://json.schedulesdirect.org/20141201/image/{redacted}.jpg. Content: {""response"":""MAX_IMAGE_DOWNLOADS"",""code"":5002,""serverID"":""20141201.web"",""message"":""Maximum image downloads reached. Counter resets every 24h. Post message to http:\/\/forums.schedulesdirect.org\/viewforum.php?f=6"",""datetime"":""2025-06-01T18:13:27Z"",""serverTime"":1748801607}",
"2025-06-01 18:13:27","Warning","0","","Unexpected JSON response for GetImageAsync request to https://json.schedulesdirect.org/20141201/image/{redacted}.jpg. Content: {""response"":""MAX_IMAGE_DOWNLOADS"",""code"":5002,""serverID"":""20141201.web"",""message"":""Maximum image downloads reached. Counter resets every 24h. Post message to http:\/\/forums.schedulesdirect.org\/viewforum.php?f=6"",""datetime"":""2025-06-01T18:13:27Z"",""serverTime"":1748801607}",
"2025-06-01 18:13:27","Warning","0","","Unexpected JSON response for GetImageAsync request to https://json.schedulesdirect.org/20141201/image/{redacted}.jpg. Content: {""response"":""MAX_IMAGE_DOWNLOADS"",""code"":5002,""serverID"":""20141201.web"",""message"":""Maximum image downloads reached. Counter resets every 24h. Post message to http:\/\/forums.schedulesdirect.org\/viewforum.php?f=6"",""datetime"":""2025-06-01T18:13:27Z"",""serverTime"":1748801607}",

"2025-06-01 18:13:28","Warning","0","","Unexpected JSON response for GetImageAsync request to https://json.schedulesdirect.org/20141201/image/{redacted}.jpg. Content: {""response"":""MAX_IMAGE_DOWNLOADS"",""code"":5002,""serverID"":""20141201.web"",""message"":""Maximum image downloads reached. Counter resets every 24h. Post message to http:\/\/forums.schedulesdirect.org\/viewforum.php?f=6"",""datetime"":""2025-06-01T18:13:28Z"",""serverTime"":1748801608}",
"2025-06-01 18:13:28","Warning","0","","Unexpected JSON response for GetImageAsync request to https://json.schedulesdirect.org/20141201/image/{redacted}.jpg. Content: {""response"":""MAX_IMAGE_DOWNLOADS"",""code"":5002,""serverID"":""20141201.web"",""message"":""Maximum image downloads reached. Counter resets every 24h. Post message to http:\/\/forums.schedulesdirect.org\/viewforum.php?f=6"",""datetime"":""2025-06-01T18:13:28Z"",""serverTime"":1748801608}",
"2025-06-01 18:13:28","Warning","0","","Unexpected JSON response for GetImageAsync request to https://json.schedulesdirect.org/20141201/image/{redacted}.jpg. Content: {""response"":""MAX_IMAGE_DOWNLOADS"",""code"":5002,""serverID"":""20141201.web"",""message"":""Maximum image downloads reached. Counter resets every 24h. Post message to http:\/\/forums.schedulesdirect.org\/viewforum.php?f=6"",""datetime"":""2025-06-01T18:13:28Z"",""serverTime"":1748801608}",
"2025-06-01 18:13:28","Warning","0","","Unexpected JSON response for GetImageAsync request to https://json.schedulesdirect.org/20141201/image/{redacted}.jpg. Content: {""response"":""MAX_IMAGE_DOWNLOADS"",""code"":5002,""serverID"":""20141201.web"",""message"":""Maximum image downloads reached. Counter resets every 24h. Post message to http:\/\/forums.schedulesdirect.org\/viewforum.php?f=6"",""datetime"":""2025-06-01T18:13:28Z"",""serverTime"":1748801608}",
"2025-06-01 18:13:29","Warning","0","","Unexpected JSON response for GetImageAsync request to https://json.schedulesdirect.org/20141201/image/{redacted}.jpg. Content: {""response"":""MAX_IMAGE_DOWNLOADS"",""code"":5002,""serverID"":""20141201.web"",""message"":""Maximum image downloads reached. Counter resets every 24h. Post message to http:\/\/forums.schedulesdirect.org\/viewforum.php?f=6"",""datetime"":""2025-06-01T18:13:29Z"",""serverTime"":1748801609}",
"2025-06-01 18:13:29","Warning","0","","Unexpected JSON response for GetImageAsync request to https://json.schedulesdirect.org/20141201/image/{redacted}.jpg. Content: {""response"":""MAX_IMAGE_DOWNLOADS"",""code"":5002,""serverID"":""20141201.web"",""message"":""Maximum image downloads reached. Counter resets every 24h. Post message to http:\/\/forums.schedulesdirect.org\/viewforum.php?f=6"",""datetime"":""2025-06-01T18:13:29Z"",""serverTime"":1748801609}",
"2025-06-01 18:13:29","Warning","0","","Unexpected JSON response for GetImageAsync request to https://json.schedulesdirect.org/20141201/image/{redacted}.jpg. Content: {""response"":""MAX_IMAGE_DOWNLOADS"",""code"":5002,""serverID"":""20141201.web"",""message"":""Maximum image downloads reached. Counter resets every 24h. Post message to http:\/\/forums.schedulesdirect.org\/viewforum.php?f=6"",""datetime"":""2025-06-01T18:13:29Z"",""serverTime"":1748801609}",
"2025-06-01 18:13:29","Warning","0","","Unexpected JSON response for GetImageAsync request to https://json.schedulesdirect.org/20141201/image/{redacted}.jpg. Content: {""response"":""MAX_IMAGE_DOWNLOADS"",""code"":5002,""serverID"":""20141201.web"",""message"":""Maximum image downloads reached. Counter resets every 24h. Post message to http:\/\/forums.schedulesdirect.org\/viewforum.php?f=6"",""datetime"":""2025-06-01T18:13:29Z"",""serverTime"":1748801609}",
:
: records omitted for brevity
:
"2025-06-01 18:41:28","Warning","0","","Unexpected JSON response for GetImageAsync request to https://json.schedulesdirect.org/20141201/image/{redacted}.jpg. Content: {""response"":""MAX_IMAGE_DOWNLOADS"",""code"":5002,""serverID"":""20141201.web"",""message"":""Maximum image downloads reached. Counter resets every 24h. Post message to http:\/\/forums.schedulesdirect.org\/viewforum.php?f=6"",""datetime"":""2025-06-01T18:41:28Z"",""serverTime"":1748803288}",

"2025-06-01 18:41:30","Warning","0","","Unexpected JSON response for GetImageAsync request to https://json.schedulesdirect.org/20141201/image/{redacted}.jpg. Content: {""response"":""MAX_IMAGE_DOWNLOADS"",""code"":5002,""serverID"":""20141201.web"",""message"":""Maximum image downloads reached. Counter resets every 24h. Post message to http:\/\/forums.schedulesdirect.org\/viewforum.php?f=6"",""datetime"":""2025-06-01T18:41:30Z"",""serverTime"":1748803290}",

"2025-06-01 18:41:33","Warning","0","","Unexpected JSON response for GetImageAsync request to https://json.schedulesdirect.org/20141201/image/{redacted}.jpg. Content: {""response"":""MAX_IMAGE_DOWNLOADS"",""code"":5002,""serverID"":""20141201.web"",""message"":""Maximum image downloads reached. Counter resets every 24h. Post message to http:\/\/forums.schedulesdirect.org\/viewforum.php?f=6"",""datetime"":""2025-06-01T18:41:33Z"",""serverTime"":1748803293}",

"2025-06-01 18:41:36","Warning","0","","No Series Image artwork found for {redacted}",

"2025-06-01 18:41:39","Warning","0","","No Series Image artwork found for {redacted}",

"2025-06-01 18:41:41","Warning","0","","No Series Image artwork found for {redacted}",

"2025-06-01 18:41:47","Warning","0","","No Series Image artwork found for {redacted}",

"2025-06-01 18:41:52","Warning","0","","No Series Image artwork found for {redacted}",

"2025-06-01 18:41:52","Warning","0","","No Series Image artwork found for {redacted}",
"2025-06-01 18:41:52","Warning","0","","No Series Image artwork found for {redacted}",

"2025-06-01 18:41:55","Warning","0","","No Series Image artwork found for {redacted}",

"2025-06-01 18:42:08","Warning","0","","No Series Image artwork found for {redacted}",

"2025-06-01 18:42:09","Warning","0","","No Series Image artwork found for {redacted}",

"2025-06-01 18:42:09","Warning","0","","No Series Image artwork found for {redacted}",

"2025-06-01 18:42:10","Warning","0","","Token cleared.",
"2025-06-01 18:42:10","Error","0","","/20141201/image/{redacted}.jpg: 401 Unauthorized : Token={reached}...
{""response"":""INVALID_USER"",""code"":4003,""serverID"":""20141201.web"",""message"":""Invalid username or token has expired."",""datetime"":""2025-06-01T18:42:10Z"",""serverTime"":1748803330}",
"2025-06-01 18:42:10","Warning","0","","HTTP Unauthorized for GetImageAsync request to https://json.schedulesdirect.org/20141201/image/{redacted}.jpg. Response: {""response"":""INVALID_USER"",""code"":4003,""serverID"":""20141201.web"",""message"":""Invalid username or token has expired."",""datetime"":""2025-06-01T18:42:10Z"",""serverTime"":1748803330}",

"2025-06-01 18:42:15","Warning","0","","Token cleared.",

"2025-06-01 18:42:16","Information","0","","Token refreshed successfully. Token=45c7a...",
"2025-06-01 18:42:16","Warning","0","","Unexpected JSON response for GetImageAsync request to https://json.schedulesdirect.org/20141201/image/{redacted}.jpg. Content: {""response"":""MAX_IMAGE_DOWNLOADS"",""code"":5002,""serverID"":""20141201.web"",""message"":""Maximum image downloads reached. Counter resets every 24h. Post message to http:\/\/forums.schedulesdirect.org\/viewforum.php?f=6"",""datetime"":""2025-06-01T18:42:16Z"",""serverTime"":1748803336}",

"2025-06-01 18:42:18","Warning","0","","No Series Image artwork found for EP05810223",

"2025-06-01 18:42:24","Warning","0","","No Series Image artwork found for EP05678540",

"2025-06-01 18:42:29","Warning","0","","Unexpected JSON response for GetImageAsync request to https://json.schedulesdirect.org/20141201/image/{redacted}.jpg. Content: {""response"":""MAX_IMAGE_DOWNLOADS"",""code"":5002,""serverID"":""20141201.web"",""message"":""Maximum image downloads reached. Counter resets every 24h. Post message to http:\/\/forums.schedulesdirect.org\/viewforum.php?f=6"",""datetime"":""2025-06-01T18:42:29Z"",""serverTime"":1748803349}",

"2025-06-01 18:42:37","Information","0","","Exiting Series Images SUCCESS.",

"2025-06-01 18:42:37","Information","0","","Entering GetAllSeriesImages() for 17849 series.",
"2025-06-01 18:42:37","Information","0","","Downloaded series images 125 of 17849",
 

Relevant Configuration

Schedules Direct: Enabled
Enable Series Poster Art: Enabled
Series Poster Aspect Ratio: 2x3
Artwork Size MD: Sm
EPG Days to Download: 14
Channels: 81

Verification

  • I have included COMPLETE logs, not just error messages
  • I have provided detailed reproduction steps
  • I have checked for similar issues before creating this report
  • I have tried the latest release to see if the issue has already been fixed
  • I understand that incomplete reports may be closed without investigation

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions