Reporting Bugs
To do a basic bug report do the following:
- Cause the bug to occur. This will often involve running a battle. If you can, put some unique sentence in the chat after you observe the bug, and tell people about this sentence later on.
- If the bug is a crash to desktop then skip to step 6, otherwise continue.
- Navigate back to the main menu of the lobby.
- In the main menu click Help, then click Report A Bug.
- Describe the bug, give the bug a title, and click Submit.
- Click 'Ok' on the Automated crash report dialogue that appears.
- Check the bug report tracker found here and find your report. It should be at the top of the page and recent. If all the reports are too old, then try refreshing the page.
- Tell someone about this bug, perhaps in #support in Discord or on the forum. Paste the bug report link from step 7 when you do so.
Taking and attaching a screenshot is vital for visual bugs.
For crashes rather than bugs, skip straight to Step 7.
For a more advanced bug report create a GitHub account and open an issue on the appropriate issue tracker:
Describe steps to reproduce the bug. Attaching images or linking a video is very helpful.
Reporting Desync
Reports of desync are made much more useful with the inclusion of a few files. The player who desynced needs to supply these files so that they can be checked against normal files from another player. The files, relative to the root Zero-K folder (found in steamapps), are:
- The appropriate
ClientGameState
file in the root directory. These don't have a naming convention, but the first line of the file is the map name, and the file creation date should match the time of the desync. - Your locally saved replay of the game, found in
demos/
. The file name contains the name of the map. - Your
infolog.txt
file, if the desync happened since the last time the ZK menu was opened. Older logs are found inlog/
. - The two path cache files matching the map name, found in
cache/105dev-BAR105/paths/
.
The battle link is also useful. This can be found under recent battles on your home page when logged in: https://zero-k.info/
Another great help is running the replay and reporting whether the game you see in the replay is the same as the one that happened the first time around.
Debug data:
[SQLBagOStuff] MainObjectStash using store ReplicatedBagOStuff
[objectcache] MainWANObjectCache using store EmptyBagOStuff
IP: 52.15.234.217
Start request GET /mediawiki/Reporting_Bugs
HTTP HEADERS:
CONTENT-TYPE:
CONTENT-LENGTH: 0
X-ORIGINAL-URL: /mediawiki/Reporting_Bugs
USER-AGENT: Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)
HOST: zero-k.info
ACCEPT-ENCODING: gzip, br, zstd, deflate
ACCEPT: */*
CONNECTION: close[localisation] LocalisationCache: using store LCStoreDB
[session] SessionManager using store SqlBagOStuff
[DBReplication] Cannot use ChronologyProtector with EmptyBagOStuff
[DBReplication] Wikimedia\Rdbms\LBFactory::getChronologyProtector: request info {
"IPAddress": "52.15.234.217",
"UserAgent": "Mozilla\/5.0 AppleWebKit\/537.36 (KHTML, like Gecko; compatible; ClaudeBot\/1.0; +claudebot@anthropic.com)",
"ChronologyProtection": false,
"ChronologyPositionIndex": 0,
"ChronologyClientId": false
}[DBConnection] Wikimedia\Rdbms\LoadBalancer::lazyLoadReplicationPositions: executed chronology callback.
[DBConnection] Wikimedia\Rdbms\LoadBalancer::getLocalConnection: connected to database 0 at 'localhost'.
[SQLBagOStuff] Connection mysql object #127 (handle id #121) will be used for SqlBagOStuff
[session] SessionBackend "st00veut1puchr1bavlijdo0jpvp41gr" is unsaved, marking dirty in constructor
[session] SessionBackend "st00veut1puchr1bavlijdo0jpvp41gr" save: dataDirty=1 metaDirty=1 forcePersist=0
[cookie] already deleted setcookie: "wikidb229_mw__session", "", "1711883686", "/", "", "", "1"
[cookie] already deleted setcookie: "wikidb229_mw_UserID", "", "1711883686", "/", "", "", "1"
[cookie] already deleted setcookie: "wikidb229_mw_Token", "", "1711883686", "/", "", "", "1"
[cookie] already deleted setcookie: "forceHTTPS", "", "1711883686", "/", "", "", "1"
[DBConnection] Wikimedia\Rdbms\LoadBalancer::getLocalConnection: connected to database 0 at 'localhost'.
Title::getRestrictionTypes: applicable restrictions to [[Reporting Bugs]] are {edit,move}
[ContentHandler] Created handler for wikitext: WikitextContentHandler
[MessageCache] MessageCache using store SqlBagOStuff
[localisation] LocalisationCache::isExpired(en): cache for en expired due to GlobalDependency
[localisation] LocalisationCache::recache: got localisation for en from source
[DBQuery] startAtomic: entering level 0 (LCStoreDB::finishWrite)
[DBQuery] endAtomic: leaving level 0 (LCStoreDB::finishWrite)
[SQLBagOStuff] Connection mysql object #127 (handle id #121) will be used for SqlBagOStuff
[SQLBagOStuff] Connection mysql object #127 (handle id #121) will be used for SqlBagOStuff
[SQLBagOStuff] Connection mysql object #127 (handle id #121) will be used for SqlBagOStuff
[SQLBagOStuff] Connection mysql object #127 (handle id #121) will be used for SqlBagOStuff
[SQLBagOStuff] SqlBagOStuff::lock failed due to timeout for wikidb229-mw_:messages:en.
[SQLBagOStuff] Connection mysql object #127 (handle id #121) will be used for SqlBagOStuff
[SQLBagOStuff] Connection mysql object #127 (handle id #121) will be used for SqlBagOStuff
[MessageCache] MessageCache::load: Loading en... local cache is empty, global cache is expired/volatile, loading from database
ParserFactory: using preprocessor: Preprocessor_Hash
Unstubbing $wgLang on call of $wgLang::_unstub from ParserOptions->__construct
[caches] parser: SqlBagOStuff
Article::view using parser cache: yes
[SQLBagOStuff] Connection mysql object #127 (handle id #121) will be used for SqlBagOStuff
[SQLBagOStuff] Connection mysql object #127 (handle id #121) will be used for SqlBagOStuff
Parser cache options found.
[SQLBagOStuff] Connection mysql object #127 (handle id #121) will be used for SqlBagOStuff
[SQLBagOStuff] Connection mysql object #127 (handle id #121) will be used for SqlBagOStuff
ParserOutput cache found.
Article::view: showing parser cache contents
MediaWiki::preOutputCommit: primary transaction round committed
MediaWiki::preOutputCommit: pre-send deferred updates completed
MediaWiki::preOutputCommit: session changes committed
MediaWiki::preOutputCommit: LBFactory shutdown completed
Title::getRestrictionTypes: applicable restrictions to [[Reporting Bugs]] are {edit,move}