[PLA-2317]: Fix block re-processing crashes in EventProcessor, ExtrinsicProcessor, and TokenCreated#364
Open
[PLA-2317]: Fix block re-processing crashes in EventProcessor, ExtrinsicProcessor, and TokenCreated#364
Conversation
f041e26 to
58c5f63
Compare
…cProcessor, and TokenCreated ExtrinsicProcessor/EventProcessor: - Guard against string values from DB longText columns for block.events and block.extrinsics (is_array check instead of null-coalescing) - Filter null events before accessing extrinsicIndex property to prevent "Attempt to read property on null" errors in saveExtrinsicEvents and updateTransaction TokenCreated: - Use firstOrCreate instead of create to prevent UniqueConstraintViolationException when re-processing blocks where the token already exists from a later block's ingestion Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…ssing When chain_getBlock returns data, extract block.header.number and compare with the stored block number. If there's a mismatch (stale hash from chain reorg), re-fetch the correct hash and retry. This prevents false 'Missing Extrinsic Timestamp::set' errors caused by hash/number mismatches. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…per minute - Changed chainIds validation from max:10/max:1000 to max:1 regardless of hotSync mode - Added per-IP rate limiting (1 request per 60 seconds) using Laravel RateLimiter, matching the pattern used by RefreshMetadataMutation Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Only limit to 1 chainId when hotSync is enabled; keep the original max:1000 for non-hotSync. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
552da04 to
4e91b3c
Compare
Resolves InvalidArgumentException thrown when Arr::get() returns a string value (e.g. a token integer value) from nested input args. RequiredIf only accepts callable|bool, so the Arr::get() result is now explicitly cast to bool, which matches the original intent of checking parent object presence. Fixes PLA-2298 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
The 'track multiple collections' entry asserted HotSync was pushed despite hotSync: false being set, making it impossible to pass. Removed in favour of the correct 'track multiple collections without hot sync' entry which asserts assertNotPushed. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
ExtrinsicProcessor/EventProcessor:
TokenCreated: