Problem/Motivation
The base video_style module can provide a shared operational action for making scheduled pending sync retries due on the next cron run. Provider modules that manage asynchronous remote synchronization need to opt in and implement that behavior for their own asset rows.
video_style_imagekit stores retry metadata for failed source synchronization attempts, including rows in pending_sync with a future sync_retry_after timestamp. When the underlying problem is fixed, for example after correcting runtime settings or changing the upload method, maintainers need a safe way to make those scheduled retries due immediately without processing them inline.
Steps to reproduce
- Install
video_styleandvideo_style_imagekit. - Cause one or more ImageKit asset rows to enter
pending_syncwith a future retry timestamp. - Fix the root cause, for example by correcting ImageKit runtime configuration.
- Use the shared recovery workflow from
video_style. - Observe that ImageKit does not yet provide a provider-side implementation for resetting those scheduled retries.
Proposed resolution
Implement the shared retry-reset capability for ImageKit.
The ImageKit module should provide a provider-owned handler that:
- participates in the shared retry-reset contract exposed by
video_style, - counts ImageKit rows in
pending_syncthat are still scheduled for a future retry time, and - makes those rows due immediately so the next cron run can retry them.
This implementation should:
- only affect scheduled
pending_syncrows, - not process any derivatives inline,
- preserve attempt counters and
last_error, and - leave actual retry execution to the existing cron and queue pipeline.
Remaining tasks
- Add an ImageKit retry-reset handler that implements the shared
video_stylecontract. - Wire that handler into the module service container with the shared retry-reset tag.
- Use the existing ImageKit asset repository to count and reset scheduled pending sync retries.
- Document that ImageKit participates in the shared asset-page operations UI and shared Drush recovery command.
User interface changes
Indirectly, yes.
After this issue is implemented, the shared operations UI from video_style will be able to act on ImageKit retry-pending rows.
API changes
No provider-specific public API changes.
This issue implements an existing shared extension point from video_style.
Data model changes
No.
This feature uses existing ImageKit retry metadata and does not require schema or configuration changes.
Comments
Comment #2
dpacassi