Hi, I am new to temporal and I have been facing some issues for which I tried to find a solution online but was unable to figure it out.
from http.cookiejar import debug
from temporalio.client import Client
from temporalio.worker import Worker, UnsandboxedWorkflowRunner
from temporalio import activity, workflow
from datetime import timedelta
import asyncio
from dataclasses import dataclass
@dataclass
class Message:
content: str
@activity.defn(name="chat_activity")
async def chat_activity(message: Message) -> Message:
print(f"Message Received: {message.content}")
return Message(content="Hello World!")
@workflow.defn(name="chat_workflow", sandboxed=False)
class ChatWorkflow:
@workflow.run
async def chat_workflow(self, query: str) -> Message:
return await workflow.execute_activity(chat_activity, Message(query), start_to_close_timeout=timedelta(seconds=10))
async def main():
client = await Client.connect("localhost:7233")
print("Starting worker!")
worker = Worker(
client,
task_queue="chat-queue",
workflows=[ChatWorkflow],
activities=[chat_activity],
debug_mode=True,
workflow_runner=UnsandboxedWorkflowRunner()
)
print("Worker started!")
await worker.run()
if __name__ == '__main__':
asyncio.run(main(), debug=True)
Here is the code that I have written. When I am running the temporal.py from pycharm it works fine and I get the expected answer. But when I will run temporal.py from pycharm in debug mode, I am getting the below exception.
import sys; print('Python %s on %s' % (sys.version, sys.platform))
C:\Users\jasvi\PycharmProjects\practice_python_project\.venv\Scripts\python.exe -X pycache_prefix=C:\Users\jasvi\AppData\Local\JetBrains\PyCharm2024.2\cpython-cache "C:/Program Files/JetBrains/PyCharm 2024.2.4/plugins/python-ce/helpers/pydev/pydevd.py" --multiprocess --qt-support=auto --client 127.0.0.1 --port 53181 --file C:\Users\jasvi\PycharmProjects\practice_python_project\temporal.py
Connected to pydev debugger (build 242.23726.102)
Starting worker!
Worker started!
Exception in callback <Task pending name='run (workflow: chat_workflow, id: b14c8089-9d71-4acf-a41f-d7bd623578ee, run: 01955199-8fc6-7f34-97b2-0e6bf301a515)' coro=<_WorkflowInstanceImpl._run_top_level_workflow_function() running at C:\Users\jasvi\PycharmProjects\practice_python_project\.venv\Lib\site-packages\temporalio\worker\_workflow_instance.py:1873> cb=[set.remove()]>()
handle: <Handle <Task pending name='run (workflow: chat_workflow, id: b14c8089-9d71-4acf-a41f-d7bd623578ee, run: 01955199-8fc6-7f34-97b2-0e6bf301a515)' coro=<_WorkflowInstanceImpl._run_top_level_workflow_function() running at C:\Users\jasvi\PycharmProjects\practice_python_project\.venv\Lib\site-packages\temporalio\worker\_workflow_instance.py:1873> cb=[set.remove()]>()>
Traceback (most recent call last):
File "C:\Users\jasvi\AppData\Local\Programs\Python\Python311\Lib\asyncio\events.py", line 80, in _run
self._context.run(self._callback, *self._args)
TypeError: 'Task' object is not callable
Exception in callback <Task pending name='query: __temporal_workflow_metadata (workflow: chat_workflow, id: b14c8089-9d71-4acf-a41f-d7bd623578ee, run: 01955199-8fc6-7f34-97b2-0e6bf301a515)' coro=<_WorkflowInstanceImpl._apply_query_workflow.<locals>.run_query() running at C:\Users\jasvi\PycharmProjects\practice_python_project\.venv\Lib\site-packages\temporalio\worker\_workflow_instance.py:642> cb=[set.remove()]>()
handle: <Handle <Task pending name='query: __temporal_workflow_metadata (workflow: chat_workflow, id: b14c8089-9d71-4acf-a41f-d7bd623578ee, run: 01955199-8fc6-7f34-97b2-0e6bf301a515)' coro=<_WorkflowInstanceImpl._apply_query_workflow.<locals>.run_query() running at C:\Users\jasvi\PycharmProjects\practice_python_project\.venv\Lib\site-packages\temporalio\worker\_workflow_instance.py:642> cb=[set.remove()]>()>
Traceback (most recent call last):
File "C:\Users\jasvi\AppData\Local\Programs\Python\Python311\Lib\asyncio\events.py", line 80, in _run
self._context.run(self._callback, *self._args)
TypeError: 'Task' object is not callable
2025-03-01T12:06:14.488389Z WARN temporal_sdk_core::worker::workflow: Task not found when completing error=status: NotFound, message: "workflow execution not found for workflow ID \"10560@Jasvir-MSI-c9d43556293f4b1684c07a60a6254369\" and run ID \"814fb3af-ce8c-4d38-93ee-3dacec6cd856\"", details: [8, 5, 18, 146, 1, 119, 111, 114, 107, 102, 108, 111, 119, 32, 101, 120, 101, 99, 117, 116, 105, 111, 110, 32, 110, 111, 116, 32, 102, 111, 117, 110, 100, 32, 102, 111, 114, 32, 119, 111, 114, 107, 102, 108, 111, 119, 32, 73, 68, 32, 34, 49, 48, 53, 54, 48, 64, 74, 97, 115, 118, 105, 114, 45, 77, 83, 73, 45, 99, 57, 100, 52, 51, 53, 53, 54, 50, 57, 51, 102, 52, 98, 49, 54, 56, 52, 99, 48, 55, 97, 54, 48, 97, 54, 50, 53, 52, 51, 54, 57, 34, 32, 97, 110, 100, 32, 114, 117, 110, 32, 73, 68, 32, 34, 56, 49, 52, 102, 98, 51, 97, 102, 45, 99, 101, 56, 99, 45, 52, 100, 51, 56, 45, 57, 51, 101, 101, 45, 51, 100, 97, 99, 101, 99, 54, 99, 100, 56, 53, 54, 34, 26, 66, 10, 64, 116, 121, 112, 101, 46, 103, 111, 111, 103, 108, 101, 97, 112, 105, 115, 46, 99, 111, 109, 47, 116, 101, 109, 112, 111, 114, 97, 108, 46, 97, 112, 105, 46, 101, 114, 114, 111, 114, 100, 101, 116, 97, 105, 108, 115, 46, 118, 49, 46, 78, 111, 116, 70, 111, 117, 110, 100, 70, 97, 105, 108, 117, 114, 101], metadata: MetadataMap { headers: {"content-type": "application/grpc"} } run_id="01955199-8fc6-7f34-97b2-0e6bf301a515"
Failed running eviction job, not evicting. Since eviction could not be processed, this worker cannot complete and the slot will remain forever used.
Traceback (most recent call last):
File "C:\Users\jasvi\PycharmProjects\practice_python_project\.venv\Lib\site-packages\temporalio\worker\_workflow.py", line 262, in _handle_activation
completion = await asyncio.wait_for(
^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\jasvi\AppData\Local\Programs\Python\Python311\Lib\asyncio\tasks.py", line 442, in wait_for
return await fut
^^^^^^^^^
File "C:\Users\jasvi\AppData\Local\Programs\Python\Python311\Lib\asyncio\futures.py", line 287, in __await__
yield self # This tells Task to wait for completion.
^^^^^^^^^^
File "C:\Users\jasvi\AppData\Local\Programs\Python\Python311\Lib\asyncio\tasks.py", line 339, in __wakeup
future.result()
File "C:\Users\jasvi\AppData\Local\Programs\Python\Python311\Lib\asyncio\futures.py", line 203, in result
raise self._exception.with_traceback(self._exception_tb)
File "C:\Users\jasvi\AppData\Local\Programs\Python\Python311\Lib\concurrent\futures\thread.py", line 58, in run
result = self.fn(*self.args, **self.kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\jasvi\PycharmProjects\practice_python_project\.venv\Lib\site-packages\temporalio\worker\_workflow_instance.py", line 419, in activate
raise RuntimeError(
RuntimeError: Eviction processed, but 2 tasks remain. Stack traces below:
Stack for <Task cancelling name='run (workflow: chat_workflow, id: b14c8089-9d71-4acf-a41f-d7bd623578ee, run: 01955199-8fc6-7f34-97b2-0e6bf301a515)' coro=<_WorkflowInstanceImpl._run_top_level_workflow_function() running at C:\Users\jasvi\PycharmProjects\practice_python_project\.venv\Lib\site-packages\temporalio\worker\_workflow_instance.py:1873> cb=[set.remove()]> (most recent call last):
File "C:\Users\jasvi\PycharmProjects\practice_python_project\.venv\Lib\site-packages\temporalio\worker\_workflow_instance.py", line 1873, in _run_top_level_workflow_function
async def _run_top_level_workflow_function(self, coro: Awaitable[None]) -> None:
Stack for <Task cancelling name='query: __temporal_workflow_metadata (workflow: chat_workflow, id: b14c8089-9d71-4acf-a41f-d7bd623578ee, run: 01955199-8fc6-7f34-97b2-0e6bf301a515)' coro=<_WorkflowInstanceImpl._apply_query_workflow.<locals>.run_query() running at C:\Users\jasvi\PycharmProjects\practice_python_project\.venv\Lib\site-packages\temporalio\worker\_workflow_instance.py:642> cb=[set.remove()]> (most recent call last):
File "C:\Users\jasvi\PycharmProjects\practice_python_project\.venv\Lib\site-packages\temporalio\worker\_workflow_instance.py", line 642, in run_query
async def run_query() -> None:
It would be of great help if you could help me fix this issue. Thanks