apify-sdk-python
apify-sdk-python copied to clipboard
Actor input via CLI is not reloaded on the second run
Description
- When running an Apify Actor twice in a row using
apify run -i 'some input', the first execution works as expected, but the second one fails to load the input - it returns None. - It appears that metadata files from the previous run remain in local storage, preventing the new input from being correctly loaded.
Reproduction
import asyncio
from apify import Actor
async def main() -> None:
async with Actor:
actor_input = await Actor.get_input()
Actor.log.info(f'Input: {actor_input}')
if __name__ == '__main__':
asyncio.run(main())
uv run apify run -i '{ "days_reminder_long": 2000, "days_reminder_short": 2000, "days_urgent": 2000 }'
uv run apify run -i '{ "days_reminder_long": 2000, "days_reminder_short": 2000, "days_urgent": 2000 }'
Expected behavior
- Each run should receive the provided input, regardless of previous executions.
Actual behavior
- First run works correctly and logs the input.
- Second run logs
Input: None. - It seems that leftover metadata files from the first run are not cleared and interfere with input loading.
Investigated - the issue originates in the CLI. Closing in favor of apify/apify-cli#933.
This issue is caused by a misaligned CLI and the storage client. Re-opening with a potential fix prepared
Should be solved by https://github.com/apify/apify-sdk-python/pull/677