Exception Triggered When Loading Save From Previous Version

Discuss how to use the Ren'Py engine to create visual novels and story-based games. New releases are announced in this section.
Forum rules
This is the right place for Ren'Py help. Please ask one question per thread, use a descriptive subject like 'NotFound error in option.rpy' , and include all the relevant information - especially any relevant code and traceback messages. Use the code tag to format scripts.
Post Reply
Message
Author
User avatar
petejohnwilson
Newbie
Posts: 4
Joined: Wed Apr 05, 2017 2:22 am
itch: petejohnwilson
Contact:

Exception Triggered When Loading Save From Previous Version

#1 Post by petejohnwilson »

Hello all,

I have encountered an issue in the latest version of my game where if a user attempts to load certain save files from an older version, an exception occurs. It seems to happen at many points throughout the game, particularly later in the game, although it does not occur 100% of the time. When it does not occur, the user is placed at a slightly earlier part of the game. This point seems to be consistent for that section of the game, and saves that are created far enough away from that stable point are the ones that seem to crash. After doing some reading, it is my understanding that this rollback is a feature that was implemented expressly to maintain more saves from previous versions. Is this true?

As far as the actual error goes, the actual script does not seem to be changed between versions at the points where the load error is occurring, leading me to believe something different might be the cause. I am not personally that experienced with Ren'Py so I was hoping that one amongst you may be able to give me a hint at what might be causing these issues or give me a hint on how to create more of these "stable points" throughout the game so as to allow players to load their save files without crashing the VN. Any other advice would be more than welcome as well!

Here is the traceback.txt it provides every time, regardless of where in the game the issue occurs:

Code: Select all

I'm sorry, but an uncaught exception occurred.

While running game code:
  File "renpy/common/00action_file.rpy", line 463, in __call__
    renpy.load(fn)
Exception: Couldn't find a place to stop rolling back. Perhaps the script changed in an incompatible way?

-- Full Traceback ------------------------------------------------------------

Full traceback:
  File "renpy/common/_layout/screen_main_menu.rpym", line 28, in script
    python hide:
  File "E:\Erodev\renpy-8.0.3-sdk\renpy\ast.py", line 1131, in execute
    renpy.python.py_exec_bytecode(self.code.bytecode, self.hide, store=self.store)
  File "E:\Erodev\renpy-8.0.3-sdk\renpy\python.py", line 1061, in py_exec_bytecode
    exec(bytecode, globals, locals)
  File "renpy/common/_layout/screen_main_menu.rpym", line 28, in <module>
    python hide:
  File "renpy/common/_layout/screen_main_menu.rpym", line 35, in _execute_python_hide
    ui.interact()
  File "E:\Erodev\renpy-8.0.3-sdk\renpy\ui.py", line 299, in interact
    rv = renpy.game.interface.interact(roll_forward=roll_forward, **kwargs)
  File "E:\Erodev\renpy-8.0.3-sdk\renpy\display\core.py", line 3377, in interact
    repeat, rv = self.interact_core(preloads=preloads, trans_pause=trans_pause, pause=pause, pause_start=pause_start, pause_modal=pause_modal, **kwargs) # type: ignore
  File "E:\Erodev\renpy-8.0.3-sdk\renpy\display\core.py", line 4258, in interact_core
    rv = root_widget.event(ev, x, y, 0)
  File "E:\Erodev\renpy-8.0.3-sdk\renpy\display\layout.py", line 1175, in event
    rv = i.event(ev, x - xo, y - yo, cst)
  File "E:\Erodev\renpy-8.0.3-sdk\renpy\display\transition.py", line 53, in event
    return self.new_widget.event(ev, x, y, st) # E1101
  File "E:\Erodev\renpy-8.0.3-sdk\renpy\display\layout.py", line 1175, in event
    rv = i.event(ev, x - xo, y - yo, cst)
  File "E:\Erodev\renpy-8.0.3-sdk\renpy\display\layout.py", line 1175, in event
    rv = i.event(ev, x - xo, y - yo, cst)
  File "E:\Erodev\renpy-8.0.3-sdk\renpy\display\screen.py", line 743, in event
    rv = self.child.event(ev, x, y, st)
  File "E:\Erodev\renpy-8.0.3-sdk\renpy\display\layout.py", line 1175, in event
    rv = i.event(ev, x - xo, y - yo, cst)
  File "E:\Erodev\renpy-8.0.3-sdk\renpy\display\layout.py", line 1175, in event
    rv = i.event(ev, x - xo, y - yo, cst)
  File "E:\Erodev\renpy-8.0.3-sdk\renpy\display\layout.py", line 279, in event
    rv = d.event(ev, x - xo, y - yo, st)
  File "E:\Erodev\renpy-8.0.3-sdk\renpy\display\behavior.py", line 1073, in event
    return handle_click(self.clicked)
  File "E:\Erodev\renpy-8.0.3-sdk\renpy\display\behavior.py", line 1008, in handle_click
    rv = run(action)
  File "E:\Erodev\renpy-8.0.3-sdk\renpy\display\behavior.py", line 329, in run
    return action(*args, **kwargs)
  File "renpy/common/00action_file.rpy", line 463, in __call__
    renpy.load(fn)
  File "E:\Erodev\renpy-8.0.3-sdk\renpy\loadsave.py", line 769, in load
    log.unfreeze(roots, label="_after_load")
  File "E:\Erodev\renpy-8.0.3-sdk\renpy\rollback.py", line 1078, in unfreeze
    self.rollback(0, force=True, label=label, greedy=greedy, on_load=True)
  File "E:\Erodev\renpy-8.0.3-sdk\renpy\rollback.py", line 889, in rollback
    self.load_failed()
  File "E:\Erodev\renpy-8.0.3-sdk\renpy\rollback.py", line 807, in load_failed
    raise Exception("Couldn't find a place to stop rolling back. Perhaps the script changed in an incompatible way?")
Exception: Couldn't find a place to stop rolling back. Perhaps the script changed in an incompatible way?

Windows-10-10.0.19045 AMD64
Ren'Py 8.0.3.22090809
Sun Nov 20 19:24:33 2022
Thank you very much for taking the time to read this thread and thank you very much for any assistance you are able to provide!

User avatar
Ocelot
Lemma-Class Veteran
Posts: 2384
Joined: Tue Aug 23, 2016 10:35 am
Github: MiiNiPaa
Discord: MiiNiPaa#4384
Contact:

Re: Exception Triggered When Loading Save From Previous Version

#2 Post by Ocelot »

Without access to the old and new scripts of the game and problematic save files there is really nothing that can be done.

From the look of it, script did change and did so drastically.
< < insert Rick Cook quote here > >

Post Reply

Who is online

Users browsing this forum: Google [Bot], Kocker