#[SPZ2-5874] [1.0.0-A5-RC2] Placing conflicting anchors on top of existing belts throws exceptions

57 messages ยท Page 1 of 1 (latest)

minor current
marble turtleBOT
#

Thank you for reporting this bug! Our team will review your report soon.
Feel free to add more details in follow-up messages โ€” we're also scanning for duplicate reports automatically now.
๐Ÿ“จ There are currently 27 reports awaiting team review. Due to the high volume, it may take a little longer for us to get to yours.

๐Ÿ’พ Savegame files (.spz2) are very helpful if relevant to the issue!
Export via Main Menu โ†’ Play โ†’ click the download icon on the relevant savegame.
You can also find them here:
โ€ข Windows: %USERPROFILE%/AppData/LocalLow/tobspr Games/shapez 2/
โ€ข Linux: $XDG_CONFIG_HOME/unity3d/tobspr Games/shapez 2/

marble turtleBOT
# minor current placing anchors that go back and forth across eachother does not typically cause...
๐Ÿ“‹ Log File Analysis

Log Analysis (Player.log):

  1. System.Exception: Menu savegame version mismatch โ€” failed to load background savegame because version 1129 is below minimum supported version 1130, occurring in BackgroundSavegameOptionsFactory.PrepareExistingMenuSavegame.

  2. InvalidOperationException: Stack empty โ€” repeated multiple times when calling Stack<T>.Peek() within PreferredPathDirectionTracker.Track, propagating through ModularEntityPlacer.ProcessPlacementTrackers. This was rethrown as an AggregateException and then as an Exception while updating various LazyText elements (e.g., island-layout.Layout_RailNode.title, island-layout.Layout_SpaceBeltNode.title, island-layout.Layout_SpacePipeNode.title) at multiple island coordinates.

  3. InvalidOperationException: Stack empty โ€” same root exception (Stack<T>.Peek()) but occurring in PathNotchClampRotationPlacementTracker.UseNotchRotationTracker, propagating through PathNotchClampRotationPlacementTracker.Track and ModularEntityPlacer.ProcessPlacementTrackers. This was rethrown while updating LazyText elements for building variants (e.g., building-variant.BeltDefaultVariant.title, building-variant.PipeDefaultVariant.title, building-variant.WireDefaultVariant.title) at tile coordinate (-39212, -11031, 0).

minor current
#

the important errors found in the log are things like this:

Exception: Trying to remove non existing building BeltDefaultLeftInternalVariant@(GlobalTileCoordinate(-39208, -11029, 0);RotateCW)
  at ExtendedMapLayout.RemoveBuilding (BuildingInstance building) [0x0008e] in <5e9c7e107ecf47aaacc4706c9504392f>:0 
  at Game.Interaction.EntitiesPlacement.StagingPlacementMapExtender.ApplyChangesToMap () [0x000d8] in <b70e1f3b6b4e4f0184eb4c5e9370e158>:0 
  at Game.Interaction.EntitiesPlacement.StagingPlacementMapExtender.FinishBunchEdit (Game.Core.BunchEditing.BunchEditScope scope) [0x0003c] in <b70e1f3b6b4e4f0184eb4c5e9370e158>:0 
  at Game.Core.BunchEditing.BunchEditScope.Dispose () [0x0000a] in <815a7677ec4941448e70aedac00d68f3>:0 
  at EntityPlacementRunner.ModifyLayoutWithPlacementData (Game.Placement.Data.IPlacementData placementData) [0x0011b] in <b70e1f3b6b4e4f0184eb4c5e9370e158>:0 
  at EntityPlacementRunner.OnPlacementDataChange () [0x0005b] in <b70e1f3b6b4e4f0184eb4c5e9370e158>:0 
  at EntityPlacementRunner.Update (InputDownstreamContext context, FrameDrawOptions drawOptions) [0x00034] in <b70e1f3b6b4e4f0184eb4c5e9370e158>:0 
  at PlayerInteractionOrchestrator.OnGameUpdate (InputDownstreamContext inputs, FrameDrawOptions drawOptions) [0x00012] in <d1b99e922e2e45bc85e716db26d5ab53>:0 
  at GameSessionOrchestrator.Tick (System.Single realDeltaTime) [0x0040c] in <d1b99e922e2e45bc85e716db26d5ab53>:0 
  at Game.Orchestration.GameOrchestrator.Tick (System.Single deltaTime) [0x0000a] in <d1b99e922e2e45bc85e716db26d5ab53>:0 
  at Game.Orchestration.EngineUpdateCallback+UpdateCallbackListenerBehavior.Update () [0x0000b] in <d1b99e922e2e45bc85e716db26d5ab53>:0 
#

the same seems to happen with space belts and space pipes. normal pipes, wires, and rails do not have this problem

hot plover
edgy spire
# hot plover Same exception as this bug: https://discord.com/channels/1000343719314198548/147...

This is the error first triggered when creating anchors on top of each other:

InvalidOperationException: Stack empty.
at System.Collections.Generic.Stack1[T].Peek () [0x00016] in <1071a2cb0cb3433aae80a793c277a048>:0 at PreferredPathDirectionTracker5[TPivot,TCoordinate,TVector,TDirection,TAxis].Track (InputDownstreamContext inputContext, Viewport viewport, PlacementInputHolder placementInput, IReadOnlyMapLayoutModel map, Game.Placement.Data.IPlacementData placementData, Game.Placement.Processing.IPlacementErrors placementErrors, System.Boolean& inputUpdated) [0x0000f] in <5e9c7e107ecf47aaacc4706c9504392f>:0
at Game.Interaction.EntitiesPlacement.ModularEntityPlacer`1[TPlacementData].ProcessPlacementTrackers (InputDownstreamContext context, Game.Placement.Data.IPlacementData currentPlacementData, Game.Placement.Processing.IPlacementErrors placementErrors, Viewport viewport, IReadOnlyMapLayoutModel layoutModel, System.Boolean& placementUpdated) [0x00030] in <b70e1f3b6b4e4f0184eb4c5e9370e158>:0
Rethrow as AggregateException: One or more errors occurred. (Stack empty.)

marble turtleBOT
#

[SPZ2-5919] [1.0.0-A5-RC2] Placing conflicting anchors on top of existing belts throws exceptions

#

๐Ÿ” This bug report has been marked as a duplicate of SPZ2-5919: InvalidOperationException: Stack empty error occurs and conveyor belt being placed is deleted if creating an anchor on the same location twice

An InvalidOperationException (Stack empty) occurs when placing a conveyor belt and creating an anchor at the same location twice. To reproduce, drag a conveyor belt, press C to create an anchor, move โ€ฆ

Please refer to that ticket for updates.
If you believe this was incorrectly flagged, run /reopen-bug and we will have a look again!

Threads linked to this issue:

hot plover
edgy spire
#

I added the error to the other bug report and set this to duplicate.

hot plover
#

The "stack empty" one is different

minor current
#

i believe the stackEmpty one comes from 5919? i'm not sure, i'll double check

#

i reported both in the same session

edgy spire
#

Which this bug report is about correct?

minor current
#

it's the one that gets spammed with the pink flashes; i don't think 5919 has this issue

edgy spire
#

The name of this bug report is:
Placing conflicting anchors on top of existing belts throws exceptions
Correct?

minor current
#

yes. i was unaware that 5919 also throws exceptions, but it does. here's a fresh log with testing repeating anchors only (not conflicting). i'll post in #1481804944322461937 as well

marble turtleBOT
# minor current yes. i was unaware that 5919 also throws exceptions, but it does. here's a fresh...
๐Ÿ“‹ Log File Analysis

Log Analysis (Player.log):

  1. System.Exception: Failed to load background savegame because menu savegame version 1129 is below the minimum supported version 1130, thrown in BackgroundSavegameOptionsFactory.PrepareExistingMenuSavegame.

  2. InvalidOperationException: Stack empty error occurring in PathNotchClampRotationPlacementTracker.UseNotchRotationTracker when calling Stack<T>.Peek() on an empty stack, during placement tracking in ModularEntityPlacer<TPlacementData>.ProcessPlacementTrackers. This error recurs at multiple building coordinates (e.g., GlobalTileCoordinate(-1051, -2128, 0) and GlobalTileCoordinate(-1051, -2127, 0)).

  3. AggregateException: Rethrown wrapper around the above InvalidOperationException with message "One or more errors occurred. (Stack empty.)".

  4. Exception: Rethrown as a higher-level exception with message "Exception triggered while updating LazyText[building-variant.BeltDefaultVariant.title]", wrapping the placement tracker errors above.

minor current
#

it triggers stack empty and that's pretty much it

marble turtleBOT
# minor current the same log file, now with the setup for this bug report
๐Ÿ“‹ Log File Analysis

Log Analysis (Player.log):

  1. System.Exception: Menu savegame version mismatch โ€” background savegame failed to load because version 1129 is below the minimum supported version 1130, occurring in BackgroundSavegameOptionsFactory.PrepareExistingMenuSavegame.

  2. InvalidOperationException: Stack empty โ€” thrown at Stack1[T].PeekwhenPathNotchClampRotationPlacementTracker.UseNotchRotationTrackerattempted to peek an empty stack during placement tracking inModularEntityPlacer1[TPlacementData].ProcessPlacementTrackers. This was rethrown as an AggregateException and then as an Exception while updating LazyText[building-variant.BeltDefaultVariant.title], and also flagged as a building error at multiple GlobalTileCoordinate locations.

  3. Exception: Building placement collision โ€” attempted to add a Splitter1To2LInternalVariantMirrored building on top of an existing BeltDefaultForwardInternalVariant at the same tile coordinates, thrown in ExtendedMapLayout.AddBuilding called from StagingPlacementMapExtender.ApplyChangesToMap.

  4. ArgumentException: Duplicate dictionary key โ€” an item with the same GlobalTileCoordinate key was already present when calling Dictionary2[TKey,TValue].AddinsideMapLayout.AddBuilding, triggered during ExtendedMapLayout.RemoveBuilding`. This occurred repeatedly at coordinates including (-1052, -2132, 0), (-1052, -2134, 0), and (-1051, -2132, 0).

#

InvalidOperationException: Stack empty error occurs and conveyor belt being placed is deleted if creating an anchor on the same location twice
To Do โ€ข Priority: Highest โ€ข Fix: 1.0 Release [1.0.0]

An InvalidOperationException (Stack empty) occurs when placing a conveyor belt and creating an anchor at the same location twice. To reproduce, drag a conveyor belt, press C to create an anchor, move to another location, press escape, then repeat the same steps. The error causes previous anchor placements to persist incorrectly and deletes drag placements up to the anchor point. Expected behavior is that anchor placements should not conflict with each other across attempts. This also affects ...
๐Ÿ’ฌ Threads: [1.0.0-A5-RC2] Repeat anchor placement c

#

Exception: Trying to add [token redacted] error is caused by placing a conveyor belt over another and then looping around
In Progress โ€ข Priority: Highest โ€ข Fix: 1.0 Release [1.0.0]

An exception occurs when placing a Conveyor Belt over an existing one in the opposite direction and then looping back into it while continuously dragging. To reproduce, place a row of Conveyor Belts on The Vortex, then drag a new belt in the reverse direction on top of them, use the anchor key to move down and right, and loop back up into the overlapping belt. This triggers an error attempting to place a Merge variant on top of an existing belt at the same tile coordinate. The issue only occu...

#

Exception triggered while updating LazyText: triggered when building a space belt or anchoring right when the game is autosaving
To Do โ€ข Priority: High โ€ข Fix: 1.0 Release [1.0.0]

An exception is triggered while updating LazyText when the player places a Space Belt or anchor at the exact moment an autosave occurs. The error references "island-layout.Layout_SpaceBeltNode.title" and appears in the console. The issue seems to be a timing conflict between structure placement and the autosave process. Expected behavior is that placing structures during an autosave should not cause any exceptions.

#

The check point icon remains on the cursor, and the building/machine appears to not be fully placed after placing a belt type machine / building that used an anchor in it's placement during gameplay.
Done โ€ข Priority: Critical โ€ข Fix: 1.0 Release [1.0.0] โ€ข Resolution: Fix Verified

After placing a conveyor belt or other belt-type structure using an anchor during placement, the anchor icon remains stuck on the cursor instead of disappearing. Additionally, the structure segment placed before the anchor appears as a shape preview rather than a fully placed structure, and the placement preview on the cursor disappears. This affects all belt-type structures including conveyor belts, pipes, rails, and wires when an anchor is used during placement. The issue has been verified ...
๐Ÿ’ฌ Threads: Check point is shown on cursor icon afte

#

Anchors for space belts/pipes work differently from conveyor belts/pipes on islands
Done โ€ข Priority: Medium โ€ข Fix: Future โ€ข Resolution: Done

Anchors for Space Belts and Space Pipes work differently from Conveyor Belts and Pipes on Space Platforms. The anchor appears to limit how corners can be created after placing an anchor for space transport methods. Space Belts and Space Pipes are missing some logic that exists for regular Conveyor Belts and Pipes. The anchor mechanic should work similarly for both types of transport. This has been confirmed as a missing logic issue in the space path Placement system.

#

ff8ea77 BP refactor. Error occurs and screen goes purple if cutting something within a platform but just outside of the selected area and then moving back to where the old selection was
Done โ€ข Priority: Critical โ€ข Fix: 1.0 Release [1.0.0] โ€ข Resolution: Fix Verified

When cutting an Area Selection within a Space Platform with the Cursor positioned just outside the selection boundary, then moving the Cursor back toward the now-deleted area, the screen turns purple and errors occur. The bug involves a Blueprint refactor issue where a Conveyor Belt Structure creates a duplicate key conflict in the base layout system. This happens specifically when performing a cut operation (Ctrl-X) with the Cursor outside the Area Selection bounds and then moving back into ...

hot plover
minor current
#

yeah that's weird to me. it was spammed last time

marble turtleBOT
#

InvalidOperationException: Stack empty error occurs and conveyor belt being placed is deleted if creating an anchor on the same location twice
To Do โ€ข Priority: Highest โ€ข Fix: 1.0 Release [1.0.0]

An InvalidOperationException (Stack empty) occurs when placing a conveyor belt and creating an anchor at the same location twice. To reproduce, drag a conveyor belt, press C to create an anchor, move to another location, press escape, then repeat the same steps. The error causes previous anchor placements to persist incorrectly and deletes drag placements up to the anchor point. Expected behavior is that anchor placements should not conflict with each other across attempts. This also affects ...
๐Ÿ’ฌ Threads: [1.0.0-A5-RC2] Repeat anchor placement c

#

Exception: Trying to add [token redacted] error is caused by placing a conveyor belt over another and then looping around
In Progress โ€ข Priority: Highest โ€ข Fix: 1.0 Release [1.0.0]

An exception occurs when placing a Conveyor Belt over an existing one in the opposite direction and then looping back into it while continuously dragging. To reproduce, place a row of Conveyor Belts on The Vortex, then drag a new belt in the reverse direction on top of them, use the anchor key to move down and right, and loop back up into the overlapping belt. This triggers an error attempting to place a Merge variant on top of an existing belt at the same tile coordinate. The issue only occu...

#

ff8ea77 BP refactor. Error occurs and screen goes purple if cutting something within a platform but just outside of the selected area and then moving back to where the old selection was
Done โ€ข Priority: Critical โ€ข Fix: 1.0 Release [1.0.0] โ€ข Resolution: Fix Verified

When cutting an Area Selection within a Space Platform with the Cursor positioned just outside the selection boundary, then moving the Cursor back toward the now-deleted area, the screen turns purple and errors occur. The bug involves a Blueprint refactor issue where a Conveyor Belt Structure creates a duplicate key conflict in the base layout system. This happens specifically when performing a cut operation (Ctrl-X) with the Cursor outside the Area Selection bounds and then moving back into ...

#

Exception: New building added to base layout created when placing belt launchers on platform
Done โ€ข Priority: Highest โ€ข Fix: 1.0 Release [1.0.0] โ€ข Game: 1.0.0-fqa1 โ€ข Resolution: Fix Verified

When placing Belt Launchers on a Space Platform where a Conveyor Belt is connected to a Stacker, then undoing the placement with Undo, an exception occurs: "New building added to base layout conflicts with BeltPortSenderInternalVariant." Redoing with Ctrl+Y triggers additional exceptions including "No path found" and "duplicate dictionary key" errors. The issue only occurs in game builds, not in Editor mode, and causes error logs to appear during normal gameplay. The bug has been fixed and ve...

#

Exception when trying to place a belt on top of itself
Done โ€ข Priority: High โ€ข Fix: Dimension Update [0.1.0] โ€ข Game: 0.1.0-pre2-rc1 โ€ข Resolution: Done

When placing a Conveyor Belt and changing its elevation to return to the previous elevation on top of itself, the screen turns black and an exception error appears. The error states "Multiple buildings will be placed at the same tile" and occurs in PlacementData.TryGetValidBuildingPlacement. This affects both regular Conveyor Belts and Space Belts. The issue can be reproduced by starting a new game in any difficulty, placing a belt, changing its elevation, and returning to the previous elevat...

#

Exception: Trying to add SpaceBelt_Lift1UpBackward occurs when creating a space belt and then cutting into another and then back up into the still being created one.
In Progress โ€ข Priority: Highest โ€ข Fix: 1.0 Release [1.0.0]

An exception error and purple screen occur when placing a Space Belt in a continuous drag across multiple machine levels. The issue is triggered by dragging a Space Belt on the bottom level, continuing to the second level, cutting down into the bottom Space Belt, reversing direction, and then going back up into the still-being-placed Space Belt. The error involves attempting to add a SpaceBeltLift1UpBackward on top of an existing SpaceBelt_Forward at the same coordinates. This happens during ...

edgy spire
#

I see what you mean. I will try to isolate the exact point that spam happens.

minor current
#

i see why you think it's a duplicate though. it could be for all i know

edgy spire
#

No. I think you are right. @hot plover Too.

#

I just need to eliminate the first issue from the second.
Sometimes one error can end up triggering the resulting errors, which makes the second errors not useful (a lot of the time)

minor current
edgy spire
minor current
#

oo that looks like it

#

i just tried a bit ago with the same circle setup i did in the report video, and couldn't actually get it to throw anything

marble turtleBOT
#

[1.0.0-A5-RC2] Placing conflicting anchors on top of existing belts throws exceptions

#

๐Ÿ”— This bug has been unlinked from our internal JIRA report SPZ2-5919. We will now have a second look at it.

edgy spire
#

Unlinked from the previous report.

edgy spire
minor current
#

yeah it seems that this is the trigger. as soon as it turns that pinkish colour

#

i think the reason for the exceptions in the original video is because i'm doing that but with a splitter instead of a merger

edgy spire
#

One exception happens when attempting to add to an existing conveyor belt.
Another exception happens when attempting to add to a conveyor belt that is not placed yet.

marble turtleBOT
#

[SPZ2-5874] [1.0.0-A5-RC2] Placing conflicting anchors on top of existing belts throws exceptions

#

๐Ÿ”— This bug has been linked to our internal ticket SPZ2-5874. Our development team will now have a look. Feel free to comment with further information if you believe it might be useful!

edgy spire
#

@minor current SPZ2-5874 starts off with one error and then becomes your error.
I will retest when the first one is fixed.