@@ -560,7 +560,9 @@ def print_finished_message(run: Run):
560560 console .print ("[code]Done[/]" )
561561 return
562562
563- termination_reason , termination_reason_message = _get_run_termination_reason (run )
563+ termination_reason , termination_reason_message , exit_status = (
564+ _get_run_termination_reason_and_exit_status (run )
565+ )
564566 message = "Run failed due to unknown reason. Check CLI, server, and run logs."
565567 if run .status == RunStatus .TERMINATED :
566568 message = "Run terminated due to unknown reason. Check CLI, server, and run logs."
@@ -572,13 +574,15 @@ def print_finished_message(run: Run):
572574 "Check CLI and server logs for more details."
573575 )
574576 elif termination_reason is not None :
577+ exit_status_details = f"Exit status: { exit_status } .\n " if exit_status else ""
575578 error_details = (
576579 f"Error: { termination_reason_message } \n " if termination_reason_message else ""
577580 )
578581 message = (
579582 f"Run failed with error code { termination_reason .name } .\n "
583+ f"{ exit_status_details } "
580584 f"{ error_details } "
581- "Check CLI, server, and run logs for more details."
585+ f "Check [bold]dstack logs -d { run . name } [/bold] for more details."
582586 )
583587 console .print (f"[error]{ message } [/]" )
584588
@@ -589,14 +593,20 @@ def get_run_exit_code(run: Run) -> int:
589593 return 1
590594
591595
592- def _get_run_termination_reason (run : Run ) -> Tuple [Optional [JobTerminationReason ], Optional [str ]]:
596+ def _get_run_termination_reason_and_exit_status (
597+ run : Run ,
598+ ) -> Tuple [Optional [JobTerminationReason ], Optional [str ], Optional [int ]]:
593599 if len (run ._run .jobs ) == 0 :
594- return None , None
600+ return None , None , None
595601 job = run ._run .jobs [0 ]
596602 if len (job .job_submissions ) == 0 :
597- return None , None
603+ return None , None , None
598604 job_submission = job .job_submissions [0 ]
599- return job_submission .termination_reason , job_submission .termination_reason_message
605+ return (
606+ job_submission .termination_reason ,
607+ job_submission .termination_reason_message ,
608+ job_submission .exit_status ,
609+ )
600610
601611
602612def _run_resubmitted (run : Run , current_job_submission : Optional [JobSubmission ]) -> bool :
0 commit comments