-
Notifications
You must be signed in to change notification settings - Fork 418
Description
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.
- Launch
- 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