• Tracker

    Spaces
    Browse
    Statistics
  • /
  • /Reforger Modding
  • /ARMD-15
Back
1

Persistence: RequestSpawn against an already-instantiated record retries forever (error spam)

General
1

State

Need more info
Issue key
ARMD-15
Access
Public
Space
Arma Reforger
Project
Reforger Modding
Creator
aaron_static
Created
Aug 11, 2026
Views
201
Platform
PC Steam
Game Version

1.7.0.54

Modlist

Overthrow

Description
A `RequestSpawn` that touches a record whose instance is already in the world (e.g. a self-spawned character) does not fail fast. The engine retries the collision several times a second, forever, never completing and never invoking the callback.

Even on collections guaranteed to have no live stored instance (AIGroup/AIWaypoint), a batch of requests intermittently never invoked its completion callback and blocked every subsequent save for the whole session

## Steps to reproduce

On a world with persistence active and a save containing records for entities that self-spawn on load, call `RequestSpawn` for a record whose instance is already live → observe the error repeating several times per second indefinitely

## Expected

- `RequestSpawn` on an already-instantiated record fails fast with a scripted error result (the id collision is detectable up front), instead of retrying forever.
- A spawn request that cannot complete must not block unrelated save requests; if the system serializes spawn-vs-save, a stuck request needs a timeout.
Reactions

Activity

    2 months ago
  • aaron_static
    created issue2 months ago
  • about 2 months ago
  • l909
    changed state to
    ASSIGNED
    about 2 months ago
  • about 2 months ago
  • arkensor
    Moderator
    about 2 months ago
    arkensor
    Moderator
    about 2 months ago

    Hello,

    We are unable to reproduce this issue. Can you please give some more details and especially a logfile created using CLI params -loglevel spam -persistence dig so we can see what exactly is spamming? The spawn request collects all known IDs and emits result callbacks for them immediately before sending a query to fetch additional data if there were not explicit includes given.

    There may be a potential issue when sending an unconditional query into a collection, attempting to respawn instances already loaded, but this does not seem to fit the description of your issue.

    This is what we tried:

    class PersistenceRepro
    {
    	static void Do()
    	{
    		auto persistence = PersistenceSystem.GetInstance();
    
    		PersistenceSpawnRequest request();
    		request.Collection = persistence.FindCollection("Character");
    		request.Include = {"01a018a9-d796-8886-8400-000000055a6e"};
    		
    		persistence.RequestSpawn(request, new PersistenceResultCallback(ReproCallback));
    	}
    
    	static void ReproCallback(EPersistenceStatusCode statusCode, Managed result, bool isLast)
    	{
    		PrintFormat("Callback invoked: %1, %2, %3", statusCode, result, isLast);
    	}
    }
  • arkensor
    changed state to
    NEED MORE INFO
    about 2 months ago
  • aaron_static
    about 2 months ago
    aaron_static
    about 2 months ago

    Your snippet passes an explicit single-id Include, which works reliably for us too. Our failing requests set Collection with no Include list at all.

    I'll capture a -loglevel spam -persistence dig log of both modes on 1.8.0.10 and attach it as soon as I get some time to look into it

  • arkensor
    Moderator
    about 2 months ago
    arkensor
    Moderator
    about 2 months ago

    When requesting an already existing instance like that it should fail with bad request at that point, and not continue for ever - unless your outer call logic then re-attempts it. Maybe you can prepare a small repro code snippet like I did to show us the problem.

You are not signed in. Please sign in to see more details and to reply.

State

Need more info
Issue key
ARMD-15
Access
Public
Space
Arma Reforger
Project
Reforger Modding
Creator
aaron_static
Created
Aug 11, 2026
Views
201