ktmud commented on a change in pull request #10274:
URL: 
https://github.com/apache/incubator-superset/pull/10274#discussion_r454127147



##########
File path: superset/errors.py
##########
@@ -46,6 +47,23 @@ class SupersetErrorType(str, Enum):
     DATASOURCE_SECURITY_ACCESS_ERROR = "DATASOURCE_SECURITY_ACCESS_ERROR"
     MISSING_OWNERSHIP_ERROR = "MISSING_OWNERSHIP_ERROR"
 
+    # Other errors
+    BACKEND_TIMEOUT_ERROR = "BACKEND_TIMEOUT_ERROR"
+
+
+ERROR_TYPES_TO_ERROR_CODES_MAPPING = {
+    SupersetErrorType.BACKEND_TIMEOUT_ERROR: [
+        {
+            "code": 1000,
+            "message": _("Error 1000 - The datasource is too large to query."),
+        },
+        {
+            "code": 1001,
+            "message": _("Error 1001 - The database is under an unusual 
load."),
+        },
+    ]
+}

Review comment:
       I've expanded my thoughts a little and here's a more detailed example: 
https://gist.github.com/ktmud/59ccbdf6c96570e1ffe41ee8e5ecd479
   
   Let me know if anything was unclear.
   
   Even if an error may represent different root causes, we can return a 
generic error code and potential causes in `extras` if needed. If the backend 
is able to identify the root cause, then cool, we return a more specific error 
code. But there doesn't have to be another layer of abstraction with all the 
mappings.




----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
[email protected]



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to