A previously working deployment is now failing wit...
# ask-community
c
A previously working deployment is now failing with permissions errors:
Copy code
? Would you like to use an existing deployment configuration? [Use arrows to move; enter to select; n to select none]
┏━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃    ┃ Name                    ┃ Entrypoint                                       ┃ Description                                                                                              ┃
┡━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
│ >  │ nde-test-deployment-001 │ flows/prefect-docker-guide-flow.py:get_repo_info │ Test deployment attempting to trigger Prefect Docker image which fetches prefect git from push workqueue │
│    │ nde-test-deployment-002 │ flows/prefect-docker-guide-flow.py:do_some_work  │ Test deployment attempting to trigger no-op Prefect Docker image from push workqueue                     │
└────┴─────────────────────────┴──────────────────────────────────────────────────┴──────────────────────────────────────────────────────────────────────────────────────────────────────────┘
    No, configure a new deployment
Running deployment build steps...
 > Running build_docker_image step...
Unable to load step function: prefect_docker.deployments.steps.build_docker_image. Attempting install of prefect-docker>=0.3.1.
Traceback (most recent call last):
  File "<CUT>prefect_env\lib\site-packages\prefect\deployments\steps\core.py", line 149, in run_steps
    step_output = await run_step(step, upstream_outputs)
    step_func = _get_function_for_step(fqn, requires=keywords.get("requires"))
  File "<CUT>prefect_env\lib\site-packages\prefect\deployments\steps\core.py", line 83, in _get_function_for_step
    subprocess.check_call(
  File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.10_3.10.3056.0_x64__qbz5n2kfra8p0\lib\subprocess.py", line 364, in check_call
    retcode = call(*popenargs, **kwargs)
  File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.10_3.10.3056.0_x64__qbz5n2kfra8p0\lib\subprocess.py", line 345, in call
    with Popen(*popenargs, **kwargs) as p:
  File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.10_3.10.3056.0_x64__qbz5n2kfra8p0\lib\subprocess.py", line 971, in __init__
    self._execute_child(args, executable, preexec_fn, close_fds,
  File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.10_3.10.3056.0_x64__qbz5n2kfra8p0\lib\subprocess.py", line 1456, in _execute_child
    hp, ht, pid, tid = _winapi.CreateProcess(executable, args,
PermissionError: [WinError 5] Access is denied

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "<CUT>prefect_env\lib\site-packages\prefect\cli\_utilities.py", line 41, in wrapper
    return fn(*args, **kwargs)
  File "<CUT>prefect_env\lib\site-packages\prefect\utilities\asyncutils.py", line 255, in coroutine_wrapper
    return call()
  File "<CUT>prefect_env\lib\site-packages\prefect\_internal\concurrency\calls.py", line 382, in __call__
    return self.result()
  File "<CUT>prefect_env\lib\site-packages\prefect\_internal\concurrency\calls.py", line 282, in result
    return self.future.result(timeout=timeout)
  File "<CUT>prefect_env\lib\site-packages\prefect\_internal\concurrency\calls.py", line 168, in result
    return self.__get_result()
  File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.10_3.10.3056.0_x64__qbz5n2kfra8p0\lib\concurrent\futures\_base.py", line 403, in __get_result
    raise self._exception
  File "<CUT>prefect_env\lib\site-packages\prefect\_internal\concurrency\calls.py", line 345, in _run_async
    result = await coro
  File "<CUT>prefect_env\lib\site-packages\prefect\cli\deploy.py", line 292, in deploy
    await _run_single_deploy(
  File "<CUT>prefect_env\lib\site-packages\prefect\client\utilities.py", line 51, in with_injected_client
    return await fn(*args, **kwargs)
  File "<CUT>prefect_env\lib\site-packages\prefect\cli\deploy.py", line 595, in _run_single_deploy
    await run_steps(build_steps, step_outputs, print_function=app.console.print)
  File "<CUT>prefect_env\lib\site-packages\prefect\deployments\steps\core.py", line 177, in run_steps
    raise StepExecutionError(f"Encountered error while running {fqn}") from exc
prefect.deployments.steps.core.StepExecutionError: Encountered error while running prefect_docker.deployments.steps.build_docker_image
An exception occurred.
I've verified that • my AWS is logged in (AWS CLI can happily query my AWS cloud project) • Docker is logged in to ECR: Docker images are building and can be shipped to ECR • Prefect cloud login is confirmed authenticated So: What have I missed? Version information:
Copy code
Version:             2.14.4
API version:         0.8.4
Python version:      3.10.11
Git commit:          d2cf30f4
Built:               Thu, Nov 9, 2023 4:48 PM
OS/Arch:             win32/AMD64
Profile:             default
Server type:         cloud
1
aah... looks like
prefect.deploysments.steps.core._get_function_for_step()
is using
get_sys_executable()
call from within a
subprocess.check_call()
which is picking up the system python, not the local env python. Perhaps a missing popen kwarg?
i'd call this a bug....
Ok. I feel silly. Seems to work on 2.14.6....