Make simulation block submission idempotent

This commit is contained in:
hz
2026-07-30 15:30:54 -05:00
parent d5048c155a
commit ae6b37eb7d
5 changed files with 29 additions and 0 deletions
@@ -154,6 +154,8 @@ func _on_request_completed(result: int, response_code: int, _headers: PackedStri
if response_code == 401:
AuthState.handle_unauthorized(request_access_token)
if result != HTTPRequest.RESULT_SUCCESS or response_code < 200 or response_code >= 300:
if _is_stale_submit_failure(action):
return
var server_message := body.get_string_from_utf8().strip_edges()
var error_parsed: Variant = JSON.parse_string(server_message)
if typeof(error_parsed) == TYPE_DICTIONARY:
@@ -205,6 +207,10 @@ func _on_request_completed(result: int, response_code: int, _headers: PackedStri
state_changed.emit()
func _is_stale_submit_failure(action: String) -> bool:
return action == "submit" and str(simulation.get("state", "")) in ["between_blocks", "completed"]
func _process_request_queue() -> void:
if is_loading or request_queue.is_empty():
return