Skip to content

Errors that started after the release of versions 2.0.1, 2.0.2, 2.0.3, 2.0.4 #765

@Ewcounless

Description

@Ewcounless

Describe the bug

As of November 22, 2025, having thoroughly tested all versions (2.0.1, 2.0.2, 2.0.3, 2.0.4), I can confidently say that we are dealing with new bugs/errors that, I believe, originate from version 2.0.1.

These aren't catastrophic errors that prevent the script from being used. But these are errors that greatly affect the work with the script.

Now I can't be sure that everything will work as expected without spending 30-60 minutes testing it at startup.

Now I can't be sure that when I go AFK, the script won't get an error that will stop it from working as intended, but at the same time it won't close itself.

Now I can't be sure that errors won't start appearing in large numbers that affect the hardware.

For example:
Now, instead of minimizing a script immediately after launching it, I leave it running for 30-60 minutes to ensure there are no critical issues at the start that require restarting the script.
Also, if I need to "loot" for 12 hours, the script can get a critical error, say, at the 4-5-6 hour mark of looting, after which the progress will not be counted, and if I do not notice this and do not restart it, I can not only lose 6-7-8 hours, I may not even be able to do what had a daily limit.

A critical error at startup may prevent the process from starting, and the script may remain active:

Traceback (most recent call last):
  File "C:\TWITCH_DROPS_MINER\run.py", line 72, in <module>
    twitch_miner.mine(
    ~~~~~~~~~~~~~~~~~^
        [
        ^
    ...<4 lines>...
        followers_order=FollowersOrder.ASC
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "C:\TWITCH_DROPS_MINER\TwitchChannelPointsMiner\TwitchChannelPointsMiner.py", line 211, in mine
    self.run(streamers=streamers, blacklist=blacklist, followers=followers)
    ~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\TWITCH_DROPS_MINER\TwitchChannelPointsMiner\TwitchChannelPointsMiner.py", line 299, in run
    self.twitch.check_streamer_online(streamer)
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^
  File "C:\TWITCH_DROPS_MINER\TwitchChannelPointsMiner\classes\Twitch.py", line 188, in check_streamer_online
    self.update_stream(streamer)
    ~~~~~~~~~~~~~~~~~~^^^^^^^^^^
  File "C:\TWITCH_DROPS_MINER\TwitchChannelPointsMiner\classes\Twitch.py", line 100, in update_stream
    stream_info = self.get_stream_info(streamer)
  File "C:\TWITCH_DROPS_MINER\TwitchChannelPointsMiner\classes\Twitch.py", line 176, in get_stream_info
    if response["data"]["user"]["stream"] is None:
       ~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^
TypeError: 'NoneType' object is not subscriptable
Traceback (most recent call last):
  File "C:\TWITCH_DROPS_MINER\run.py", line 72, in <module>
    twitch_miner.mine(
    ~~~~~~~~~~~~~~~~~^
        [
        ^
    ...<4 lines>...
        followers_order=FollowersOrder.ASC
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "C:\TWITCH_DROPS_MINER — main\TwitchChannelPointsMiner\TwitchChannelPointsMiner.py", line 211, in mine
    self.run(streamers=streamers, blacklist=blacklist, followers=followers)
    ~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\TWITCH_DROPS_MINER — main\TwitchChannelPointsMiner\TwitchChannelPointsMiner.py", line 298, in run
    self.twitch.load_channel_points_context(streamer)
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^
  File "C:\TWITCH_DROPS_MINER — main\TwitchChannelPointsMiner\classes\Twitch.py", line 674, in load_channel_points_context
    community_points = channel["self"]["communityPoints"]
                       ~~~~~~~^^^^^^^^
TypeError: 'NoneType' object is not subscriptable
Traceback (most recent call last):
  File "C:\TWITCH_DROPS_MINER\SCRIPT_NAME.py", line 72, in <module>
    twitch_miner.mine(
    ~~~~~~~~~~~~~~~~~^
        [
        ^
    ...<4 lines>...
        followers_order=FollowersOrder.ASC
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "C:\TWITCH_DROPS_MINER\TwitchChannelPointsMiner\TwitchChannelPointsMiner.py", line 211, in mine
    self.run(streamers=streamers, blacklist=blacklist, followers=followers)
    ~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\TWITCH_DROPS_MINER\TwitchChannelPointsMiner\TwitchChannelPointsMiner.py", line 299, in run
    self.twitch.check_streamer_online(streamer)
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^
  File "C:\TWITCH_DROPS_MINER\TwitchChannelPointsMiner\classes\Twitch.py", line 188, in check_streamer_online
    self.update_stream(streamer)
    ~~~~~~~~~~~~~~~~~~^^^^^^^^^^
  File "C:\TWITCH_DROPS_MINER\TwitchChannelPointsMiner\classes\Twitch.py", line 104, in update_stream
    title=stream_info["broadcastSettings"]["title"],
          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^
TypeError: 'NoneType' object is not subscriptable

===========================================================
lines 72 - 79 in SCRIPT_NAME.py :
===========================================================

twitch_miner.mine(
    [
        Streamer("STREAMER_FOR_LOOTING_1", settings=StreamerSettings(make_predictions=False  , follow_raid=False , claim_drops=True  , watch_streak=False , community_goals=False , bet=BetSettings(strategy=Strategy.SMART      , percentage=5 , stealth_mode=True,  percentage_gap=20 , max_points=50000   , filter_condition=FilterCondition(by=OutcomeKeys.TOTAL_USERS,      where=Condition.LTE, value=800 ) ) )),
        Streamer("STREAMER_FOR_LOOTING_2", settings=StreamerSettings(make_predictions=False  , follow_raid=False , claim_drops=True  , watch_streak=False , community_goals=False , bet=BetSettings(strategy=Strategy.SMART      , percentage=5 , stealth_mode=True,  percentage_gap=20 , max_points=50000   , filter_condition=FilterCondition(by=OutcomeKeys.TOTAL_USERS,      where=Condition.LTE, value=800 ) ) ))
    ],
    followers=False,
    followers_order=FollowersOrder.ASC
)

Exception in thread Thread-10 (run):
Traceback (most recent call last):
  File "C:\Users\PC\AppData\Local\Programs\Python\Python313\Lib\threading.py", line 1041, in _bootstrap_inner
    self.run()
    ~~~~~~~~^^
  File "C:\Users\PC\AppData\Local\Programs\Python\Python313\Lib\threading.py", line 992, in run
    self._target(*self._args, **self._kwargs)
    ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\TWITCH_DROPS_MINER\TwitchChannelPointsMiner\classes\WebSocketsPool.py", line 106, in run
    ws.ping()  # We need ping for keep the connection alive
    ~~~~~~~^^
  File "C:\TWITCH_DROPS_MINER\TwitchChannelPointsMiner\classes\TwitchWebSocket.py", line 50, in ping
    self.send({"type": "PING"})
    ~~~~~~~~~^^^^^^^^^^^^^^^^^^
  File "C:\TWITCH_DROPS_MINER\TwitchChannelPointsMiner\classes\TwitchWebSocket.py", line 57, in send
    super().send(request_str)
    ~~~~~~~~~~~~^^^^^^^^^^^^^
  File "C:\Users\PC\AppData\Local\Programs\Python\Python313\Lib\site-packages\websocket\_app.py", line 290, in send    if not self.sock or self.sock.send(data, opcode) == 0:
                        ~~~~~~~~~~~~~~^^^^^^^^^^^^^^
  File "C:\Users\PC\AppData\Local\Programs\Python\Python313\Lib\site-packages\websocket\_core.py", line 297, in send
    return self.send_frame(frame)
           ~~~~~~~~~~~~~~~^^^^^^^
  File "C:\Users\PC\AppData\Local\Programs\Python\Python313\Lib\site-packages\websocket\_core.py", line 337, in send_frame
    l = self._send(data)
  File "C:\Users\PC\AppData\Local\Programs\Python\Python313\Lib\site-packages\websocket\_core.py", line 559, in _send
    return send(self.sock, data)
  File "C:\Users\PC\AppData\Local\Programs\Python\Python313\Lib\site-packages\websocket\_socket.py", line 179, in send
    return _send()
  File "C:\Users\PC\AppData\Local\Programs\Python\Python313\Lib\site-packages\websocket\_socket.py", line 156, in _send
    return sock.send(data)
           ~~~~~~~~~^^^^^^
  File "C:\Users\PC\AppData\Local\Programs\Python\Python313\Lib\ssl.py", line 1232, in send
    return self._sslobj.write(data)
           ~~~~~~~~~~~~~~~~~~^^^^^^
Exception raised in send minute watched
Traceback (most recent call last):
  File "C:\TWITCH_DROPS_MINER\TwitchChannelPointsMiner\classes\Twitch.py", line 577, in send_minute_watched_events
    response = requests.post(
        streamers[index].stream.spade_url,
    ...<3 lines>...
        timeout=20,
    )
  File "C:\Users\PC\AppData\Local\Programs\Python\Python313\Lib\site-packages\requests\api.py", line 115, in post
    return request("post", url, data=data, json=json, **kwargs)
  File "C:\Users\PC\AppData\Local\Programs\Python\Python313\Lib\site-packages\requests\api.py", line 59, in request
    return session.request(method=method, url=url, **kwargs)
           ~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\PC\AppData\Local\Programs\Python\Python313\Lib\site-packages\requests\sessions.py", line 575, in request
    prep = self.prepare_request(req)
  File "C:\Users\PC\AppData\Local\Programs\Python\Python313\Lib\site-packages\requests\sessions.py", line 484, in prepare_request
    p.prepare(
    ~~~~~~~~~^
        method=request.method.upper(),
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    ...<10 lines>...
        hooks=merge_hooks(request.hooks, self.hooks),
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "C:\Users\PC\AppData\Local\Programs\Python\Python313\Lib\site-packages\requests\models.py", line 367, in prepare
    self.prepare_url(url, params)
    ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
  File "C:\Users\PC\AppData\Local\Programs\Python\Python313\Lib\site-packages\requests\models.py", line 438, in prepare_url
    raise MissingSchema(
    ...<2 lines>...
    )
requests.exceptions.MissingSchema: Invalid URL 'None': No scheme supplied. Perhaps you meant https://None?
Exception raised in send minute watched
Traceback (most recent call last):
  File "C:\TWITCH_DROPS_MINER\TwitchChannelPointsMiner\classes\Twitch.py", line 577, in send_minute_watched_events
    response = requests.post(
        streamers[index].stream.spade_url,
    ...<3 lines>...
        timeout=20,
    )
  File "C:\Users\PC\AppData\Local\Programs\Python\Python313\Lib\site-packages\requests\api.py", line 115, in post
    return request("post", url, data=data, json=json, **kwargs)
  File "C:\Users\PC\AppData\Local\Programs\Python\Python313\Lib\site-packages\requests\api.py", line 59, in request
    return session.request(method=method, url=url, **kwargs)
           ~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\PC\AppData\Local\Programs\Python\Python313\Lib\site-packages\requests\sessions.py", line 575, in request
    prep = self.prepare_request(req)
  File "C:\Users\PC\AppData\Local\Programs\Python\Python313\Lib\site-packages\requests\sessions.py", line 484, in prepare_request
    p.prepare(
    ~~~~~~~~~^
        method=request.method.upper(),
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    ...<10 lines>...
        hooks=merge_hooks(request.hooks, self.hooks),
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "C:\Users\PC\AppData\Local\Programs\Python\Python313\Lib\site-packages\requests\models.py", line 367, in prepare
    self.prepare_url(url, params)
    ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
  File "C:\Users\PC\AppData\Local\Programs\Python\Python313\Lib\site-packages\requests\models.py", line 438, in prepare_url
    raise MissingSchema(
    ...<2 lines>...
    )
requests.exceptions.MissingSchema: Invalid URL 'None': No scheme supplied. Perhaps you meant https://None?

Also, one of the above errors may appear after any amount of time of operation and the looting process will stop without closing the script.

Non-critical errors that complicate the script's operation by placing additional load on the hardware, but looting does not stop:

Error with GQLOperations (PlaybackAccessToken): HTTPSConnectionPool(host='gql.twitch.tv', port=443): Max retries exceeded with url: /gql (Caused by NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x000002A7DD789090>: Failed to establish a new connection: [WinError 10048] Обычно разрешается только одно использование адреса сокета (протокол/сетевой адрес/порт)'))
Error while trying to send minute watched: HTTPSConnectionPool(host='9c6ee9e29d42.j.cloudfront.hls.ttvnw.net', port=443): Max retries exceeded with url: /v1/segment/CscCrjk3uMv2QNkh10YgFuuUmKT1a9lVkNnucJe_niC2ig7szyW-lzeBxQ0FpoZ7ohpiPTW22vJ9FDtjmBXO-HTDYoc5eSqMWHZW8NQVf0p8kNN6P8IDd9kbfcDCTl7THX3O-unilHTWfC1AKEIpC5Q9TBjEJO8xzLAWo-73dxaO82VNUrnuI_8TWG_txAZPoG1lqiUBcWl1Nt1A33lMVIbx3_5cubos_yaQtRTnp1zxoWMxcTY7uvLT46YhxeQVqkWbDMCf7iZjvxB0jPQvT7faqW-g9f039BiXihH3ykpuqF1UpVAdVKJc6s-trGr3lZjir7D3dZky8OyuTRddxWf9EDGyt8Io5jylrH-yUxKXjt4WCP3NaI34hJtVu37zgDnuaVxRLWHttbxYnUvTdKzwVp6OALK7PcAG2QQm7ixeNPBqmTqQ22ezGgyqBOYlYD3zazz7hd0gASoJZXUtd2VzdC0yMN8N.mp4?dna=CnvTTpL6BE1Tj2dIQDGZ3JFyz7TnXwrpR_NA8WWcnCL3nAd5fXfs6vTUGsowwRKe65HsEtsGLdhv1eHB6_K9XipNg3S4sRDeg1bGR2ujJf_ZgQHdd8VtlEr2pzCyIUMIC5QQlP_y8EEoOUUuIDRFzEbDLzm2qhDl9wHzmRwaDDA462YexmyVbFjq2SABKglldS13ZXN0LTIw3w0 (Caused by NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x000002A7DD789950>: Failed to establish a new connection: [WinError 10048] Обычно разрешается только одно использование адреса сокета (протокол/сетевой адрес/порт)'))
Error with update_client_version: HTTPSConnectionPool(host='www.twitch.tv', port=443): Max retries exceeded with url: / (Caused by NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x000001A69A2AF9D0>: Failed to establish a new connection: [WinError 10048] Обычно разрешается только одно использование адреса сокета (протокол/сетевой адрес/порт)'))
19/11 13:45:58 - [TWITCH_USERNAME] #0 - WebSocket closed
19/11 13:45:58 - [TWITCH_USERNAME] #0 - Reconnecting to Twitch PubSub server in ~60 seconds
19/11 13:46:29 - [TWITCH_USERNAME] #0 - WebSocket closed
19/11 13:46:29 - [TWITCH_USERNAME] #0 - Reconnecting to Twitch PubSub server in ~60 seconds
19/11 13:46:59 - [TWITCH_USERNAME] #0 - WebSocket closed
19/11 13:46:59 - [TWITCH_USERNAME] #0 - Reconnecting to Twitch PubSub server in ~60 seconds
19/11 13:47:30 - [TWITCH_USERNAME] #0 - WebSocket closed
19/11 13:47:30 - [TWITCH_USERNAME] #0 - Reconnecting to Twitch PubSub server in ~60 seconds
19/11 13:48:00 - [TWITCH_USERNAME] #0 - WebSocket closed
19/11 13:48:00 - [TWITCH_USERNAME] #0 - Reconnecting to Twitch PubSub server in ~60 seconds
19/11 13:48:31 - [TWITCH_USERNAME] #0 - WebSocket closed
19/11 13:48:31 - [TWITCH_USERNAME] #0 - Reconnecting to Twitch PubSub server in ~60 seconds
19/11 13:49:01 - [TWITCH_USERNAME] #0 - WebSocket closed
19/11 13:49:01 - [TWITCH_USERNAME] #0 - Reconnecting to Twitch PubSub server in ~60 seconds
19/11 13:49:32 - [TWITCH_USERNAME] #0 - WebSocket closed
19/11 13:49:32 - [TWITCH_USERNAME] #0 - Reconnecting to Twitch PubSub server in ~60 seconds
19/11 13:50:02 - [TWITCH_USERNAME] #0 - WebSocket closed
19/11 13:50:02 - [TWITCH_USERNAME] #0 - Reconnecting to Twitch PubSub server in ~60 seconds
19/11 13:50:33 - [TWITCH_USERNAME] #0 - WebSocket closed
19/11 13:50:33 - [TWITCH_USERNAME] #0 - Reconnecting to Twitch PubSub server in ~60 seconds
19/11 13:51:03 - [TWITCH_USERNAME] #0 - WebSocket closed
19/11 13:51:03 - [TWITCH_USERNAME] #0 - Reconnecting to Twitch PubSub server in ~60 seconds
19/11 13:51:33 - [TWITCH_USERNAME] #0 - No internet connection available! Retry after 2m
19/11 13:53:34 - [TWITCH_USERNAME] #0 - WebSocket closed
19/11 13:53:34 - [TWITCH_USERNAME] #0 - Reconnecting to Twitch PubSub server in ~60 seconds
19/11 13:54:04 - [TWITCH_USERNAME] #0 - No internet connection available! Retry after 3m
19/11 13:57:04 - [TWITCH_USERNAME] #0 - WebSocket closed
19/11 13:57:04 - [TWITCH_USERNAME] #0 - Reconnecting to Twitch PubSub server in ~60 seconds
19/11 13:57:35 - [TWITCH_USERNAME] #0 - WebSocket closed
19/11 13:57:35 - [TWITCH_USERNAME] #0 - Reconnecting to Twitch PubSub server in ~60 seconds
19/11 13:58:05 - [TWITCH_USERNAME] #0 - WebSocket closed
19/11 13:58:05 - [TWITCH_USERNAME] #0 - Reconnecting to Twitch PubSub server in ~60 seconds
19/11 13:58:36 - [TWITCH_USERNAME] #0 - WebSocket closed
19/11 13:58:36 - [TWITCH_USERNAME] #0 - Reconnecting to Twitch PubSub server in ~60 seconds
19/11 13:59:06 - [TWITCH_USERNAME] #0 - WebSocket closed
19/11 13:59:06 - [TWITCH_USERNAME] #0 - Reconnecting to Twitch PubSub server in ~60 seconds
19/11 13:59:37 - [TWITCH_USERNAME] #0 - WebSocket closed
19/11 13:59:37 - [TWITCH_USERNAME] #0 - Reconnecting to Twitch PubSub server in ~60 seconds
19/11 14:00:07 - [TWITCH_USERNAME] #0 - WebSocket closed
19/11 14:00:07 - [TWITCH_USERNAME] #0 - Reconnecting to Twitch PubSub server in ~60 seconds
19/11 13:52:14 - [TWITCH_USERNAME] Error with GQLOperations (DropsHighlightService_AvailableDrops): HTTPSConnectionPool(host='gql.twitch.tv', port=443): Max retries exceeded with url: /gql (Caused by ConnectTimeoutError(<urllib3.connection.HTTPSConnection object at 0x000001D378009310>, 'Connection to gql.twitch.tv timed out. (connect timeout=None)'))
19/11 13:52:14 - [TWITCH_USERNAME] #0 - WebSocket error: [WinError 10053] Программа на вашем хост-компьютере разорвала установленное подключение
19/11 13:52:14 - [TWITCH_USERNAME] [WinError 10053] Программа на вашем хост-компьютере разорвала установленное подключение - goodbye
19/11 13:52:14 - [TWITCH_USERNAME] #0 - WebSocket closed
19/11 13:52:14 - [TWITCH_USERNAME] #0 - Reconnecting to Twitch PubSub server in ~60 seconds

My run.py: https://gist.github.com/Ewcounless/40ebccee0edb018c10464d95e4e0056a#file-gistfile1-txt

My computer hasn't been changed in years. The software hasn't been changed in years.
No antivirus. Firewall disabled.
Internet: 1 Gigabit. Dedicated line. Real static IP address. I don't use a proxy or VPN.
There have been absolutely no changes since the release of script versions 2.0.1-2.0.4.
Before patch 2.0.1, everything worked perfectly, without any issues. I have always been confident in the correct operation of the script and have learned to work with it quite well under any conditions.
I also worked with the script both before and after patches 2.0.1-2.0.4 were released on a different computer with different hardware and a different internet provider. Both computers were configured identically.
Everything was fine until the moment when a fix was needed on November 10, 2025.

Steps to reproduce

Normal script launch, but more often in multi-mode.
But errors were also noticed in single mode.

  1. Launch
  2. Wait

Expected behavior

It's critically important to fix any catastrophic errors that affect the script's operation. This is the most important thing.

It's advisable to fix any errors that don't affect the script's operation.

Operating system

Windows 10 Version 22H2 (OS Build 19045.6456)

Python version

3.13.0

Miner version

2.0.1-2.0.4

Other relevant software versions

No response

Logs

DEBUG log is disabled
update:

I specifically set aside 30 minutes of time with the DEBUG LOG enabled.
Unfortunately, I didn't manage to capture the catastrophic error, but I did catch a critical error, but the looting didn't stop.
The exact same error occurs when looting stops, only then it starts spamming constantly every n seconds.
Unfortunately, in this log, looting even started, and then this error popped up.
When it appears in a catastrophic case, looting doesn't even begin.

DEBUG LOG: https://gist.github.com/Ewcounless/f8f097fe679bcc023f42979edfa13ed8#file-gistfile1-txt
SCRIPT LOG: https://gist.github.com/Ewcounless/0401f29a44d61bbd7bb342ada7e8ee27#file-gistfile1-txt

Additional context

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions