33
33
from bittensor_cli .src .bittensor .chain_data import SubnetHyperparameters
34
34
from rich .prompt import PromptBase
35
35
36
+ BT_DOCS_LINK = "https://docs.bittensor.com"
37
+
38
+
36
39
console = Console ()
37
40
json_console = Console ()
38
41
err_console = Console (stderr = True )
@@ -527,10 +530,11 @@ def format_error_message(error_message: Union[dict, Exception]) -> str:
527
530
elif all (x in d for x in ["code" , "message" , "data" ]):
528
531
new_error_message = d
529
532
break
530
- except ValueError :
533
+ except ( ValueError , TypeError , SyntaxError , MemoryError , RecursionError ) :
531
534
pass
532
535
if new_error_message is None :
533
536
return_val = " " .join (error_message .args )
537
+
534
538
return f"Subtensor returned: { return_val } "
535
539
else :
536
540
error_message = new_error_message
@@ -549,8 +553,7 @@ def format_error_message(error_message: Union[dict, Exception]) -> str:
549
553
# subtensor custom error marker
550
554
if err_data .startswith ("Custom error:" ):
551
555
err_description = (
552
- f"{ err_data } | Please consult "
553
- f"https://docs.bittensor.com/subtensor-nodes/subtensor-error-messages"
556
+ f"{ err_data } | Please consult { BT_DOCS_LINK } /errors/custom"
554
557
)
555
558
else :
556
559
err_description = err_data
@@ -563,10 +566,20 @@ def format_error_message(error_message: Union[dict, Exception]) -> str:
563
566
err_type = error_message .get ("type" , err_type )
564
567
err_name = error_message .get ("name" , err_name )
565
568
err_docs = error_message .get ("docs" , [err_description ])
566
- if isinstance (err_docs , list ):
567
- err_description = " " .join (err_docs )
568
- else :
569
- err_description = err_docs
569
+ err_description = " " .join (err_docs )
570
+ err_description += (
571
+ f" | Please consult { BT_DOCS_LINK } /errors/subtensor#{ err_name .lower ()} "
572
+ )
573
+
574
+ elif error_message .get ("code" ) and error_message .get ("message" ):
575
+ err_type = error_message .get ("code" , err_name )
576
+ err_name = "Custom type"
577
+ err_description = error_message .get ("message" , err_description )
578
+
579
+ else :
580
+ print_error (
581
+ f"String representation of real error_message: { str (error_message )} "
582
+ )
570
583
571
584
return f"Subtensor returned `{ err_name } ({ err_type } )` error. This means: `{ err_description } `."
572
585
0 commit comments