[tobias] [2.0.32] Inconsistent handling of logistic robot item over-reservations between different chest types

This subforum contains all the issues which we already resolved.
terrenna
Burner Inserter
Burner Inserter
Posts: 6
Joined: Wed Feb 12, 2025 6:17 am
Contact:

[tobias] [2.0.32] Inconsistent handling of logistic robot item over-reservations between different chest types

Post by terrenna »

Description
I would expect logistic robots' item over-reservations to behave the same across the different kind of logistic chests, but they differ in their logistic network (LN) request changes.
  • Storage chest: Over-reserved items don't show up in LN requests, only LN contents.
  • Active provider chest, passive provider chest, and buffer chest: Over-reserved items are subtracted from LN requests during dispatch, and added back after pickup.
See attached images for experimental results.
Steps to reproduce
Create requester chest, set it to request 100 iron plates. Create a roboport, put a logistic robot inside. Pause time in map editor. Put 1 iron plate into storage chest. Move forward in time tick by tick, monitoring LN request circuit signals at the roboport. The value remains at a constant 99. Repeat for active provider chest, passive provider chest, or buffer chest. Here, the value changes from 100 to 96 (cargo size = 4), and then to 99 when the item gets picked up. Blueprint for setup below.



Notes:
  • The over-reservation representation as part of the LN seems to be intentional (see 117965), but the difference between storage chests and other logistic chests remains unexplained and looks very much like a bug.
  • I am ignoring the difference before the request here because it seems to be a possibly related yet different issue, so I have reported it separately (see 126787). The inconsistency reported on here is on top of that because when the same experiment is performed with 4 iron plates instead of 1, the difference before the request remains, but the inconsistency during reservation is not present, as shown in the second attached image.
Possible Solutions
I would streamline on the side of storage chests, subtracting over-reservations from LN contents, but not subtracting them from LN requests also, because it prevents a situation where you have the iron plates spread over multiple logistic chests, and end up with a lot of temporarily satisfied requests, which all end up unsatisfied again moments later (can trip up on-demand production). Ideally, in my current opinion, the number of LN requests would only ever increase when more items are being requested.

Also, while the number of LN requests can't seem to become negative, I have (so far irreproducibly) seen "2.1G", which I suppose results from some kind of overflow.
Inconsistencies between chest types when over-reserving
overreserved.png
overreserved.png (523.62 KiB) Viewed 436 times
Relative (see "Notes" above) consistency between chest types when not over-reserving
not_overreserved.png
not_overreserved.png (453.67 KiB) Viewed 436 times
Tobias1595
Factorio Staff
Factorio Staff
Posts: 43
Joined: Sat Sep 29, 2018 5:28 pm
Contact:

Re: [tobias] [2.0.32] Inconsistent handling of logistic robot item over-reservations between different chest types

Post by Tobias1595 »

This bug has been fixed alongside with 128584 for version 2.0.48. Now all chests' contents are included in the calculation, and only the items actually missing from the network as a whole appear in the "missing requests" signals. Delivery reservations towards requesters should not affect these signals any more.
Post Reply

Return to “Resolved Problems and Bugs”