0.E-2 Gamebreaking bug - map rerolls on load

Yesterday I was doing pretty well, I have found a nice cottage, a working car that I filled with gas, lots of books, made a forge etc. I saved the game with no errors and shut down my pc. Today I try to load and I’m greeted with

DEBUG : Failed to read from “./save/Lake Wissota/artifacts.gsav”: line 1:1: tried to start array, but found ‘"’, not ‘[’

This is something that has happened to me before and I had figured a workaround, I just deleted the contents of artifacts.gsav (it was just spaces anyway) and retried. This time there was a fkton of errors and when I skipped all of them and the world finally loaded the map was completely re-rolled; I have lost everything that wasn’t in my inventory at the time of saving. I will include the debug log but the gist of it is that there seems to be a lot of corrupted files that failed to save properly and most of them are just empty with several spaces


12:41:37.253 : Starting log.
12:41:37.253 INFO : Cataclysm DDA version 0.E-2
12:41:37.259 INFO : SDL version used during compile is 2.0.5
12:41:37.259 INFO : SDL version used during linking and in runtime is 2.0.5
12:41:37.296 INFO : Number of render drivers on your system: 4
12:41:37.296 INFO : Render driver: 0/direct3d
12:41:37.296 INFO : Render driver: 1/direct3d11
12:41:37.296 INFO : Render driver: 2/opengl
12:41:37.296 INFO : Render driver: 3/software
12:41:37.311 INFO : Active renderer: 0/direct3d
12:41:37.499 INFO : USE_COLOR_MODULATED_TEXTURES is set to 0
12:41:37.591 INFO : Language is set to: ‘en’
12:41:38.385 WARNING : opendir [./mods/] failed with “No such file or directory”.
12:41:40.446 ERROR : (error message will follow backtrace)
#0
(dbghelp: @0x620c16[cataclysm-tiles.exe+0x220c16]),
(libbacktrace: Z21debug_write_backtraceRSo+0x56@0x620c16),
(libbacktrace: 0x620c16 [unknown src]:0 [unknown func]),
#1
(dbghelp: @0x6216aa[cataclysm-tiles.exe+0x2216aa]),
(libbacktrace: Z8DebugLog10DebugLevel10DebugClass+0x34a@0x6216aa),
(libbacktrace: 0x6216aa [unknown src]:0 [unknown func]),
#2
(dbghelp: @0x6245f6[cataclysm-tiles.exe+0x2245f6]),
(libbacktrace: Z12realDebugmsgPKcS0_S0_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE+0x76@0x6245f6),
(libbacktrace: 0x6245f6 [unknown src]:0 [unknown func]),
#3
(dbghelp: IMG_LoadWEBP_RW+0x11d374@0x12615f4[cataclysm-tiles.exe+0xe615f4]),
(libbacktrace: Z12realDebugmsgIJPKcS1_EEvS1_S1_S1_S1_DpOT_+0x2a4@0x12615f4),
(libbacktrace: 0x12615f4 [unknown src]:0 [unknown func]),
#4
(dbghelp: @0x52bf64[cataclysm-tiles.exe+0x12bf64]),
(libbacktrace: Z14read_from_fileRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKSt8functionIFvRSiEE+0x294@0x52bf64),
(libbacktrace: 0x52bf64 [unknown src]:0 [unknown func]),
#5
(dbghelp: @0x52c141[cataclysm-tiles.exe+0x12c141]),
(libbacktrace: Z28read_from_file_optional_jsonRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKSt8functionIFvR6JsonInEE+0x61@0x52c141),
(libbacktrace: 0x52c141 [unknown src]:0 [unknown func]),
#6
(dbghelp: @0x491e7b[cataclysm-tiles.exe+0x91e7b]),
(libbacktrace: Z14load_artifactsRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE+0x2b@0x491e7b),
(libbacktrace: 0x491e7b [unknown src]:0 [unknown func]),
#7
(dbghelp: @0x70ebaf[cataclysm-tiles.exe+0x30ebaf]),
(libbacktrace: ZN4game19load_world_modfilesER10loading_ui+0x4bf@0x70ebaf),
(libbacktrace: 0x70ebaf [unknown src]:0 [unknown func]),
#8
(dbghelp: @0x73d195[cataclysm-tiles.exe+0x33d195]),
(libbacktrace: ZN4game5setupEv+0xa5@0x73d195),
(libbacktrace: 0x73d195 [unknown src]:0 [unknown func]),
#9
(dbghelp: @0x990650[cataclysm-tiles.exe+0x590650]),
(libbacktrace: ZN9main_menu18load_character_tabEb+0x14c0@0x990650),
(libbacktrace: 0x990650 [unknown src]:0 [unknown func]),
#10

>     (dbghelp: @0x99423a[cataclysm-tiles.exe+0x59423a]), 
>     (libbacktrace: ZN9main_menu14opening_screenEv+0xd6a@0x99423a),
>     (libbacktrace: 0x99423a    [unknown src]:0    [unknown func]),
>   #11
>     (dbghelp: IMG_LoadWEBP_RW+0x67aaeb@0x17bed6b[cataclysm-tiles.exe+0x13bed6b]), 
>     (libbacktrace: main+0x151b@0x17bed6b),
>     (libbacktrace: 0x17bed6b    [unknown src]:0    [unknown func]),
>   #12
>     (dbghelp: @0x4013ed[cataclysm-tiles.exe+0x13ed]), 
>     (libbacktrace: _tmainCRTStartup+0x23d@0x4013ed),
>     (libbacktrace: 0x4013ed    /home/narc/src/mxe/tmp-gcc-x86_64-w64-mingw32.static/gcc-5.4.0.build_/mingw-w64-v5.0.2/mingw-w64-crt/crt/crtexe.c:336    __tmainCRTStartup),
>   #13
>     (dbghelp: @0x4014fb[cataclysm-tiles.exe+0x14fb]), 
>     (libbacktrace: WinMainCRTStartup+0x1b@0x4014fb),
>     (libbacktrace: 0x4014fb    /home/narc/src/mxe/tmp-gcc-x86_64-w64-mingw32.static/gcc-5.4.0.build_/mingw-w64-v5.0.2/mingw-w64-crt/crt/crtexe.c:186    WinMainCRTStartup),
>   #14
>     (dbghelp: BaseThreadInitThunk+0xd@0x775759cd[kernel32.dll+0x159cd]), 
>     (backtrace_syminfo failed: errno = -1, msg = no symbol table in PE/COFF executable),
>     (backtrace_pcinfo failed: errno = -1, msg = no debug info in PE/COFF executable),
>   #15
>     (dbghelp: RtlUserThreadStart+0x1d@0x777d385d[ntdll.dll+0x5385d]), 
>     (backtrace_syminfo failed: errno = -1, msg = no symbol table in PE/COFF executable),
>     (backtrace_pcinfo failed: errno = -1, msg = no debug info in PE/COFF executable),
> Backtrace emission took 0 seconds.
> src/cata_utility.cpp:434 [bool read_from_file(const string&, const std::function<void(std::basic_istream<char>&)>&)] Failed to read from "./save/Lake Wissota/artifacts.gsav": ???: tried to start array, but found '˙', not '['
> 12:41:44.840 WARNING : opendir [./save/Lake Wissota/mods] failed with "No such file or directory".
> 12:41:49.061 ERROR SDL : src/cata_tiles.cpp:606: tile t_chainfence_h_season_winter has no (valid) foreground nor background
> 12:41:49.062 INFO : Loaded tileset: MShock32Modded
> 12:41:50.175 ERROR : src/cata_utility.cpp:434 [bool read_from_file(const string&, const std::function<void(std::basic_istream<char>&)>&)] Failed to read from "./save/Lake Wissota/o.-1.0": line 1:1: tried to start object, but found '
> 12:41:51.008 ERROR : src/cata_utility.cpp:434 [bool read_from_file(const string&, const std::function<void(std::basic_istream<char>&)>&)] Failed to read from "./save/Lake Wissota/o.-1.1": line 1:1: tried to start object, but found '
> 12:41:52.344 ERROR : src/cata_utility.cpp:434 [bool read_from_file(const string&, const std::function<void(std::basic_istream<char>&)>&)] Failed to read from "./save/Lake Wissota/o.0.0": line 28:682331: missing separator
> 
> ,"faction":"zombie","mission_id":-1,"no_extra_death_drops":false,"dead":false,"anger":100,"morale":100,"hallucination":false,"stairscount":0,"destination":[0,0,0],"ammo":{},"underwater":false,"upgrades":false,"upgrade_time":-1,"last_updated"
> 12:41:52.368 ERROR : src/cata_utility.cpp:434 [bool read_from_file(const string&, const std::function<void(std::basic_istream<char>&)>&)] Failed to read from "./save/Lake Wissota/o.0.-1": line 1:1: tried to start object, but found '
> 12:41:53.368 ERROR : src/cata_utility.cpp:434 [bool read_from_file(const string&, const std::function<void(std::basic_istream<char>&)>&)] Failed to read from "./save/Lake Wissota/maps/-1.0.0/-9.25.0.map": line 1:1: tried to start array, but found '
> 12:41:53.408 ERROR : src/cata_utility.cpp:434 [bool read_from_file(const string&, const std::function<void(std::basic_istream<char>&)>&)] Failed to read from "./save/Lake Wissota/maps/-1.0.0/-9.26.0.map": line 1:1: tried to start array, but found '
> 12:41:53.435 ERROR : src/cata_utility.cpp:434 [bool read_from_file(const string&, const std::function<void(std::basic_istream<char>&)>&)] Failed to read from "./save/Lake Wissota/maps/-1.0.0/-9.27.0.map": line 1:1: tried to start array, but found '
> 12:41:53.590 ERROR : src/cata_utility.cpp:434 [bool read_from_file(const string&, const std::function<void(std::basic_istream<char>&)>&)] Failed to read from "./save/Lake Wissota/maps/-1.0.0/-9.28.0.map": line 1:1: tried to start array, but found '
> 12:41:54.156 ERROR : src/cata_utility.cpp:434 [bool read_from_file(const string&, const std::function<void(std::basic_istream<char>&)>&)] Failed to read from "./save/Lake Wissota/maps/-1.0.0/-9.29.0.map": line 1:1: tried to start array, but found '
> 12:41:54.605 ERROR : src/cata_utility.cpp:434 [bool read_from_file(const string&, const std::function<void(std::basic_istream<char>&)>&)] Failed to read from "./save/Lake Wissota/maps/-1.0.0/-9.30.0.map": line 1:1: tried to start array, but found '
> 12:41:55.070 ERROR : src/cata_utility.cpp:434 [bool read_from_file(const string&, const std::function<void(std::basic_istream<char>&)>&)] Failed to read from "./save/Lake Wissota/maps/-1.0.0/-8.25.0.map": line 1:1: tried to start array, but found '
> 12:41:55.101 ERROR : src/cata_utility.cpp:434 [bool read_from_file(const string&, const std::function<void(std::basic_istream<char>&)>&)] Failed to read from "./save/Lake Wissota/maps/-1.0.0/-8.26.0.map": line 1:1: tried to start array, but found '
> 12:41:55.141 ERROR : src/cata_utility.cpp:434 [bool read_from_file(const string&, const std::function<void(std::basic_istream<char>&)>&)] Failed to read from "./save/Lake Wissota/maps/-1.0.0/-8.27.0.map": line 1:1: tried to start array, but found '
> 12:41:55.169 ERROR : src/cata_utility.cpp:434 [bool read_from_file(const string&, const std::function<void(std::basic_istream<char>&)>&)] Failed to read from "./save/Lake Wissota/maps/-1.0.0/-8.28.0.map": line 1:1: tried to start array, but found '
> 12:41:55.209 ERROR : src/cata_utility.cpp:434 [bool read_from_file(const string&, const std::function<void(std::basic_istream<char>&)>&)] Failed to read from "./save/Lake Wissota/maps/-1.0.0/-8.29.0.map": line 1:1: tried to start array, but found '
> 12:41:55.240 ERROR : src/cata_utility.cpp:434 [bool read_from_file(const string&, const std::function<void(std::basic_istream<char>&)>&)] Failed to read from "./save/Lake Wissota/maps/-1.0.0/-8.30.0.map": line 1:1: tried to start array, but found '
> 12:41:55.290 ERROR : src/cata_utility.cpp:434 [bool read_from_file(const string&, const std::function<void(std::basic_istream<char>&)>&)] Failed to read from "./save/Lake Wissota/maps/-1.0.0/-7.25.0.map": line 1:1: tried to start array, but found '
> 12:41:55.314 ERROR : src/cata_utility.cpp:434 [bool read_from_file(const string&, const std::function<void(std::basic_istream<char>&)>&)] Failed to read from "./save/Lake Wissota/maps/-1.0.0/-7.26.0.map": line 1:1: tried to start array, but found '
> 12:41:55.337 ERROR : src/cata_utility.cpp:434 [bool read_from_file(const string&, const std::function<void(std::basic_istream<char>&)>&)] Failed to read from "./save/Lake Wissota/maps/-1.0.0/-7.27.0.map": line 1:1: tried to start array, but found '
> 12:41:55.366 ERROR : src/cata_utility.cpp:434 [bool read_from_file(const string&, const std::function<void(std::basic_istream<char>&)>&)] Failed to read from "./save/Lake Wissota/maps/-1.0.0/-7.28.0.map": line 1:1: tried to start array, but found '
> 12:41:55.399 ERROR : src/cata_utility.cpp:434 [bool read_from_file(const string&, const std::function<void(std::basic_istream<char>&)>&)] Failed to read from "./save/Lake Wissota/maps/-1.0.0/-7.29.0.map": line 1:1: tried to start array, but found '
> 12:41:55.808 ERROR : src/cata_utility.cpp:434 [bool read_from_file(const string&, const std::function<void(std::basic_istream<char>&)>&)] Failed to read from "./save/Lake Wissota/maps/-1.0.0/-7.30.0.map": line 1:1: tried to start array, but found '
> 12:41:56.317 ERROR : src/cata_utility.cpp:434 [bool read_from_file(const string&, const std::function<void(std::basic_istream<char>&)>&)] Failed to read from "./save/Lake Wissota/maps/-1.0.0/-6.25.0.map": line 1:1: tried to start array, but found '
> 12:41:56.347 ERROR : src/cata_utility.cpp:434 [bool read_from_file(const string&, const std::function<void(std::basic_istream<char>&)>&)] Failed to read from "./save/Lake Wissota/maps/-1.0.0/-6.26.0.map": line 1:1: tried to start array, but found '
> 12:41:56.382 ERROR : src/cata_utility.cpp:434 [bool read_from_file(const string&, const std::function<void(std::basic_istream<char>&)>&)] Failed to read from "./save/Lake Wissota/maps/-1.0.0/-6.27.0.map": line 1:1: tried to start array, but found '
> 12:41:56.414 ERROR : src/cata_utility.cpp:434 [bool read_from_file(const string&, const std::function<void(std::basic_istream<char>&)>&)] Failed to read from "./save/Lake Wissota/maps/-1.0.0/-6.28.0.map": line 1:1: tried to start array, but found '
> 12:41:56.438 ERROR : src/cata_utility.cpp:434 [bool read_from_file(const string&, const std::function<void(std::basic_istream<char>&)>&)] Failed to read from "./save/Lake Wissota/maps/-1.0.1/-6.28.1.map": line 1:1: tried to start array, but found '
> 12:41:56.476 ERROR : src/cata_utility.cpp:434 [bool read_from_file(const string&, const std::function<void(std::basic_istream<char>&)>&)] Failed to read from "./save/Lake Wissota/maps/-1.0.0/-6.29.0.map": line 1:1: tried to start array, but found '
> 12:41:56.523 ERROR : src/cata_utility.cpp:434 [bool read_from_file(const string&, const std::function<void(std::basic_istream<char>&)>&)] Failed to read from "./save/Lake Wissota/maps/-1.0.0/-6.30.0.map": line 1:1: tried to start array, but found '
> 12:41:56.563 ERROR : src/cata_utility.cpp:434 [bool read_from_file(const string&, const std::function<void(std::basic_istream<char>&)>&)] Failed to read from "./save/Lake Wissota/maps/-1.0.0/-5.25.0.map": line 1:1: tried to start array, but found '
> 12:41:56.588 ERROR : src/cata_utility.cpp:434 [bool read_from_file(const string&, const std::function<void(std::basic_istream<char>&)>&)] Failed to read from "./save/Lake Wissota/maps/-1.0.0/-5.26.0.map": line 1:1: tried to start array, but found '
> 12:41:56.611 ERROR : src/cata_utility.cpp:434 [bool read_from_file(const string&, const std::function<void(std::basic_istream<char>&)>&)] Failed to read from "./save/Lake Wissota/maps/-1.0.0/-5.27.0.map": line 1:1: tried to start array, but found '
> 12:41:56.638 ERROR : src/cata_utility.cpp:434 [bool read_from_file(const string&, const std::function<void(std::basic_istream<char>&)>&)] Failed to read from "./save/Lake Wissota/maps/-1.0.0/-5.28.0.map": line 1:1: tried to start array, but found '
> 12:41:56.691 ERROR : src/cata_utility.cpp:434 [bool read_from_file(const string&, const std::function<void(std::basic_istream<char>&)>&)] Failed to read from "./save/Lake Wissota/maps/-1.0.0/-5.29.0.map": line 1:1: tried to start array, but found '
> 12:41:56.726 ERROR : src/cata_utility.cpp:434 [bool read_from_file(const string&, const std::function<void(std::basic_istream<char>&)>&)] Failed to read from "./save/Lake Wissota/maps/-1.0.0/-5.30.0.map": line 1:1: tried to start array, but found '
> 12:41:56.780 ERROR : src/cata_utility.cpp:434 [bool read_from_file(const string&, const std::function<void(std::basic_istream<char>&)>&)] Failed to read from "./save/Lake Wissota/maps/-1.0.0/-4.25.0.map": line 1:1: tried to start array, but found '
> 12:41:56.806 ERROR : src/cata_utility.cpp:434 [bool read_from_file(const string&, const std::function<void(std::basic_istream<char>&)>&)] Failed to read from "./save/Lake Wissota/maps/-1.0.0/-4.26.0.map": line 1:1: tried to start array, but found '
> 12:41:56.837 ERROR : src/cata_utility.cpp:434 [bool read_from_file(const string&, const std::function<void(std::basic_istream<char>&)>&)] Failed to read from "./save/Lake Wissota/maps/-1.0.0/-4.27.0.map": line 1:1: tried to start array, but found '
> 12:41:56.865 ERROR : src/cata_utility.cpp:434 [bool read_from_file(const string&, const std::function<void(std::basic_istream<char>&)>&)] Failed to read from "./save/Lake Wissota/maps/-1.0.0/-4.28.0.map": line 1:1: tried to start array, but found '
> 12:41:56.891 ERROR : src/cata_utility.cpp:434 [bool read_from_file(const string&, const std::function<void(std::basic_istream<char>&)>&)] Failed to read from "./save/Lake Wissota/maps/-1.0.0/-4.29.0.map": line 1:1: tried to start array, but found '
> 12:41:56.916 ERROR : src/cata_utility.cpp:434 [bool read_from_file(const string&, const std::function<void(std::basic_istream<char>&)>&)] Failed to read from "./save/Lake Wissota/maps/-1.0.0/-4.30.0.map": line 1:1: tried to start array, but found '
> 12:41:57.122 ERROR : src/cata_utility.cpp:434 [bool read_from_file(const string&, const std::function<void(std::basic_istream<char>&)>&)] Failed to read from "./save/Lake Wissota/#T3B0eW1pc3R5aw==.apu.json": line 1:1: tried to start array, but found '
> 12:41:57.137 ERROR : src/safemode_ui.cpp:768 [void safemode::load(bool)] Error while loading safemode settings: line 1:1: tried to start array, but found '
> 12:41:57.158 ERROR : src/cata_utility.cpp:434 [bool read_from_file(const string&, const std::function<void(std::basic_istream<char>&)>&)] Failed to read from "./save/Lake Wissota/uistate.json": line 1:1: tried to start object, but found '
> 12:42:29.100 : Log shutdown.
> -----------------------------------------

This sounds like a problem with your computer, not necessarily from the game itself.

I’d suggest to check your RAM, HardDisk and CPU. In my case it was the CPU/Mainboard…

Yeah it’s quite interesting that it’s my computers fault but stuff like that only happens in this game. Don’t get me wrong my PC is an absolute potato but it does run many other games and programs fine, including Factorio and Photoshop. Yet in this game I get a red debug message every 20 minutes and I had to fix the artifacts.gsav issue three times now. I don’t mind so much cuz it’s free anyway - but maybe, just maybe, the code in this game is not as perfect and impeccable as we all thought?

Then… why does it only break for you and work fine for everyone else?

Yes, there are bugs in the code. Many, many bugs. Replacing files with whitespaces isn’t one of it. This sounds more like the harddisk fails to write (or afterwards read) the right bytes.

You know, since you’ve reported the bug, you may also try the solution I’ve suggested? Run a chkdsk, some memory tests and run a test for the CPU while you’re at it. Or, you know, don’t listen to the person that tries to help you… that’s fine too.

As I’ve stated, I’ve had the same error. Just not in this game. It was a different one. And only in that one game. And then it started to spread… Bluescreens with nonsensical error messages and random files filled with whitespaces after a restart. It still worked ok up until the files that filled with spaces were windows files…
In my case running tests only failed 1 in 10 times, usually with one processor core slowing down to almost a complete halt for some reason, while all the others run normally.

1 Like

My PC performs chkdsk on a schedule, last time was today morning and I defrag it quite regularly. I have no reason to suspect my hard drive. It’s old and slow, but I’m yet to see this kind of issue pop un anywhere else. I haven’t had a blue screen in a long time, and generally no issues besides when I run out of my 8GB of RAM and it inevitably starts to lag

It also doesn’t break only for me, here’s an identical issue reported on Reddit. It is a rare issue but it does exist.

As for why this happens, a file may fail to save properly for many reasons, for example if the system or the process is currently handling too many files or the kernel has run out of memory or even because of the antivirus or lack of user permissions. That’s not really the issue. The issue is that there’s apparently no check for whether or not the save has succeeded. This is absolutely basic and a huge oversight.

And how should it be performed, if I may ask? And where should it end?

Well, first thing that you always do when opening a file is check if the filestream is open. Then you write what you need to write and check for any issues. Exactly how you do that may depend on the programming language, but in C++ it’s as simple as “if(stream.good())” or “if(stream.fail())”, if it’s not ok then you notify the player and you’re done.

Thanks, C.O. And if it returns ok but it really isn’t because the disk is damaged and reporting bad info to the OS as OK, which in turn reports that OK to the game?

Well, I guess if the hard drive is damaged that could result in undefined behavior, so nobody knows what could or would happen. However that would be a very strange and specific kind of malfunction. Usually if the disk is damaged the computer will not read that disk, or it will crash trying to access it. I also heard sometimes files and folders might randomly disappear or get corrupted - but that would apply to many seemingly random files throughout the memory, not multiple blank files in the CDDA folder.

In short, if such a strange malfunction would occur, unlikely as it is, there’s nothing a programmer could do about that. Not that playing CDDA would be the users main concern at that point, because he’d be loosing data everywhere. And I think we can say with a fair dose of certainty that this is not what has happened to me.

Exactly what I was leading you to.

Nope. It could happen randomly. I mean truly randomly, and possibly not often at all. I had a case of a faulty RAM once. PC would work perfectly for days, then suddenly fail to make a backup. Then it would work perfectly for days again. Or it could crash the next hour after failing a backup. Or not. Again, talking from personal experience here. If you didn’t have faulty hardware, don’t try predicting what it could be like.

the first step in fixing a bug is to get reproducible steps in creating the bug

Except what you described was nothing like what has happened to me and a problem with RAM, meanwhile I supposedly have a problem with my hard drive. Ergo you didn’t have the “faulty hardware” either, have you? So don’t try predicting what it could be like.

I’m not going to continue this conversation, as it seems everyone is bent on telling me this is the fault of my hard drive when I’m almost certain it isn’t (with the regular defrags, performed chkdsk and no reason to suspect my hard drive at all). It’s as if calling tech support saying “hey, your software doesn’t work” and they be like “oh, it’s clear that your motherboard must be damaged then”. I honestly don’t care enough to keep trying to prove to you my hard drive is fine. I’m done with the game. I came here to report a bug, I even told you how to fix it, do what you will with it. I could have just as well not reported it; I wonder how many players had their world re-rolled and just deleted the game and never bothered to report it? As I’ve shown this is not something that has exclusively happened to me.

If it turns out you were right and I start to loose data or my PC bursts into flames because of my “damaged hard drive” the first thing I’ll do is come here and apologize, but I wouldn’t hold my breath if I were you. Until then maybe someone should find out if there actually is a check for writing failure in the code and if it works.

DEBUG : Failed to read from “./save/Lake Wissota/artifacts.gsav”: line 1:1: tried to start array, but found ‘"’, not ‘[’

This doesn’t sound like a file that was replaced with whitespace. It sounds like artifacts.gsav was saved with an object that had a string value in a place where the loader expects an array.

Ok, you’re right cuz this is not actually the original message I got. Once I saw that my world gets re-rolled I deleted the contents of the log file and re-opened the game to get rid of old logs so that it’s easy to find the new logs. But because I had manually solved the artifacts.gsav issue already this exact error did not appear again. It probably would if I kept playing, it has happened thrice to me during my time with the game. But I wanted to include it even though it was no longer in my log cuz I thought it may be important, so I googled “cataclysm dda failed to read from artifacts.gsav” and I found a post with familiar-looking debug message so I just copy-pasted it here. From what I remember the actual debug message I got was identical to this one except maybe it said ’ ’ not ‘"’ now that I took a closer look. Everything besides this one debug message was taken straight from the log file so you can trust it 100%

Well, did you check RAM and CPU, then?

Oh, no, you missunderstood. I did not have a bluescreen for 2 years after the bug first appeared. As said, I only had this problem with a specific game (Fable)… however, I knew that it was not a bug in that game, as I’ve installed it many times across multiple systems. Tech support did play it down. A few months later (without any problems), I lost half of a text file to whitespaces. Not really tragic, as I’ve got backups. An other 1-3 months later, it showed itself somewhere else. One time, the mouse pointer did stutter all over my screen, but everything else was fine and no slowdowns on any programs.
Finally, after about 2 years of weird behavior, it started throwing bluescreens at me. Not on every start up and with no time frame, but occasionally. Until it no longer started, because either boot or some Windows files got corrupted.
I still can’t change the “Restore previous version” setting on my other harddrives because of this.
That’s what I meant with “it spread”. Not immediatly, but slowly and not necessarily in connection.
In my case, my hard drive was fine. I’ve lost files because of a faulty CPU/Socket.

My appologies. He didn’t state anything about whitespaces, so I assumed that was a different problem.
Some of the answers there seem to suggest that other programs or defective harddrive can cause something like that, however, the author did not report back on his/her findings.

So… other than your second response leads to believe, you seem to undestand that it might not be the game that’s bugged. So it’s more a suggestion to implement an additionaly safety mechanism?
Well, the game does check for missing user write permission. However, it can’t do more than to tell the user that it failed to save:
cata-nowrite

Depending on the failure part (exact software/hardware), it might only appear if the system’s running hot or it acesses that defective memory section. It can happen all the time to all the things or with huge pauses between them and only on one software…

I mean, I said that I had the exact same thing and it was my CPU, and my first statement even mentioned to check RAM, HD and CPU, as it could be any of that.

With a few differences…: We get no pay trying to help you while you are uncooperative, and it’s like calling tech support and saying, “hey, your software doesn’t work, there’s the bug” and tech support says “Oh, I had this one too, it might not be what you think it is, might want to check this” and you go “No, I’m not doing that, I will not help narrow it down, it is your software’s fault!”…

I did, it works (see screenshot above).

Well then, I retract my appology. This might not be the same issue as the one on reddit…

1 Like

So I am not a programmer or anything, but a long time ago I had a weird crash on a video game. The company had a built-in little log filler thingy, and after I sent the logs to them, they could see that something odd was happening with game info loaded to RAM.

I had the crash repeat a few times in one day, and I was able to send all the logs to them. They were stumped as to what could be causing it, but said something was messing up in the memory at all most the same spot every time.

I dug out my little motherboard book and took a look at the ram section, and lo and behold, I had installed the ram sticks themselves wrong (sticks were supposed to be in the order of A1-B1-A2-B2, i had just stuck them both in A section). Switching them to the correct orientation fixed it.

I never had another game crash or anything, neither did the operating system itself. For whatever reason, it was just that game. Just a lesson in how odd computers can be sometimes.

Exactly, it found a quote character instead of the JSON array indicator.

:facepalm.bmp: it was the faulty RAM. I though I explicitly said what it was, but if that wasn’t enough, you can have a repeat.