Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

[BUG] manifests for some Steam apps are now dicts, not plain IDs, causing CDNClient.get_manifests to crash #436

Open
Labels
@smcv

Description

Description
Some Steam apps (the one I'm aware of is 1628350 "Steam Linux Runtime - Sniper") have changed their ['apps'][id]['manifests'][branch] from a plain manifest ID (ASCII decimal string) to a key/value dictionary with members gid, size and download, causing CDNClient.get_manifests to crash.

Steps to Reproduce the behavior
Run https://gist.github.com/smcv/8430646f3cf5e502711ddf3ea620eaea with --interactive. You might need a Steam account that has added 1628350 "Steam Linux Runtime - Sniper" to the Steam library - it's free, and is used by Proton 8.0.

Expected behavior
The script can download and display VERSION.txt from each branch of each of the Steam Linux Runtime depots.

Screenshots
For 1391110 "Steam Linux Runtime - Soldier" my script is still working:

App ID: 1391110 (Steam Linux Runtime - Soldier)
	Branch: public
		Build ID: 10940185
		Updated: 2023年04月26日T15:48:12+00:00
		Depot: 1391111
			Manifest: 5271457197581595980
				#Name	Version		Runtime	Runtime_Version	Comment
				depot	0.20230405.47174			# Overall version number
				pressure-vessel	0.20230405.0	scout		# pressure-vessel-bin.tar.gz
				scripts	0.20230405.0			# from steam-runtime-tools
				soldier	0.20230405.47174	soldier	0.20230405.47174	# soldier_platform_0.20230405.47174/

but for 1628350 "Steam Linux Runtime - Sniper" it now crashes:

App ID: 1628350 (Steam Linux Runtime - Sniper)
	Branch: public
		Build ID: 10940192
		Updated: 2023年04月26日T15:50:07+00:00
		Depot: 1628351
			Manifest: {'gid': '820291660013951810', 'size': '703682881', 'download': '188124800'}
Traceback (most recent call last):
 File "src/gevent/greenlet.py", line 908, in gevent._gevent_cgreenlet.Greenlet.run
 File "REDACTED/python-steam/steam/client/cdn.py", line 785, in async_fetch_manifest
 app_id, depot_id, int(manifest_gid), branch_name, branch_pass
 ^^^^^^^^^^^^^^^^^
TypeError: int() argument must be a string, a bytes-like object or a real number, not 'dict'
2023年05月05日T16:09:39Z <Greenlet at 0x7f0665bee200: async_fetch_manifest(1628350, 1628351, {'gid': '820291660013951810', 'size': '703682881',, True, 1628351, branch_name='public', branch_pass=None)> failed with TypeError
Traceback (most recent call last):
 File "REDACTED/python-steam/./describe-depots.py", line 204, in <module>
 main()
 File "REDACTED/python-steam/./describe-depots.py", line 183, in main
 Main(**vars(args)).run()
 File "REDACTED/python-steam/./describe-depots.py", line 158, in run
 for manifest in cdn.get_manifests(
 File "REDACTED/python-steam/steam/client/cdn.py", line 857, in get_manifests
 result = task.get()
 File "src/gevent/greenlet.py", line 831, in gevent._gevent_cgreenlet.Greenlet.get
 File "src/gevent/greenlet.py", line 373, in gevent._gevent_cgreenlet.Greenlet._raise_exception
 File "/usr/lib/python3/dist-packages/gevent/_compat.py", line 66, in reraise
 raise value.with_traceback(tb)
 File "src/gevent/greenlet.py", line 908, in gevent._gevent_cgreenlet.Greenlet.run
 File "REDACTED/python-steam/steam/client/cdn.py", line 785, in async_fetch_manifest
 app_id, depot_id, int(manifest_gid), branch_name, branch_pass
TypeError: int() argument must be a string, a bytes-like object or a real number, not 'dict'

Versions Report

python -m steam.versions_report (Run python -m steam.versions_report and paste the output below)
steam: 1.4.4
Dependencies:
 vdf: 3.4
 protobuf: 4.21.12
 requests: 2.28.1
 cachetools: 5.2.0
 gevent: 22.10.2
 gevent-eventemitter: Not Installed
 pycryptodomex: 3.11.0
 enum34: Not Installed
 win-inet-pton: Not Installed
Python runtime:
 executable: /usr/bin/python3
 version: 3.11.2 (main, Mar 13 2023, 12:18:29) [GCC 12.2.0]
 platform: linux
System info:
 system: Linux
 machine: x86_64
 release: 6.1.0-7-amd64
 version: #1 SMP PREEMPT_DYNAMIC Debian 6.1.20-1 (2023年03月19日)

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions

        AltStyle によって変換されたページ (->オリジナル) /