(window.webpackJsonp=window.webpackJsonp||[]).push([[70],{"1J4g":function(e,t,a){"use strict";a.r(t),a.d(t,"_frontmatter",(function(){return o})),a.d(t,"default",(function(){return i}));var r=a("k1TG"),n=a("8o2o"),s=(a("q1tI"),a("7ljp")),c=a("hhGP"),o=(a("qKvR"),{});void 0!==o&&o&&o===Object(o)&&Object.isExtensible(o)&&!o.hasOwnProperty("__filemeta")&&Object.defineProperty(o,"__filemeta",{configurable:!0,value:{name:"_frontmatter",filename:"src/pages/docs/Miscellaneous/issue_codes.mdx"}});var b={_frontmatter:o},u=c.a;function i(e){var t=e.components,a=Object(n.a)(e,["components"]);return Object(s.b)(u,Object(r.a)({},b,a,{components:t,mdxType:"MDXLayout"}),Object(s.b)("h1",{id:"issue-code-reference"},"Issue Code Reference"),Object(s.b)("p",null,"This page lists issue codes that may be displayed in\nSuperset and provides additional context."),Object(s.b)("h2",{id:"issue-1000"},"Issue 1000"),Object(s.b)("pre",null,Object(s.b)("code",Object(r.a)({parentName:"pre"},{}),"The datasource is too large to query.\n")),Object(s.b)("p",null,"It's likely your datasource has grown too large to run the current\nquery, and is timing out. You can resolve this by reducing the\nsize of your datasource or by modifying your query to only process a\nsubset of your data."),Object(s.b)("h2",{id:"issue-1001"},"Issue 1001"),Object(s.b)("pre",null,Object(s.b)("code",Object(r.a)({parentName:"pre"},{}),"The database is under an unusual load.\n")),Object(s.b)("p",null,"Your query may have timed out because of unusually high load on the\ndatabase engine. You can make your query simpler, or wait until the\ndatabase is under less load and try again."),Object(s.b)("h2",{id:"issue-1002"},"Issue 1002"),Object(s.b)("pre",null,Object(s.b)("code",Object(r.a)({parentName:"pre"},{}),"The database returned an unexpected error.\n")),Object(s.b)("p",null,"Your query failed because of an error that occurred on the database.\nThis may be due to a syntax error, a bug in your query, or some other\ninternal failure within the database. This is usually not an\nissue within Superset, but instead a problem with the underlying\ndatabase that serves your query."),Object(s.b)("h2",{id:"issue-1003"},"Issue 1003"),Object(s.b)("pre",null,Object(s.b)("code",Object(r.a)({parentName:"pre"},{}),"There is a syntax error in the SQL query. Perhaps there was a misspelling or a typo.\n")),Object(s.b)("p",null,"Your query failed because of a syntax error within the underlying query. Please\nvalidate that all columns or tables referenced within the query exist and are spelled\ncorrectly."),Object(s.b)("h2",{id:"issue-1004"},"Issue 1004"),Object(s.b)("pre",null,Object(s.b)("code",Object(r.a)({parentName:"pre"},{}),"The column was deleted or renamed in the database.\n")),Object(s.b)("p",null,"Your query failed because it is referencing a column that no longer exists in\nthe underlying datasource. You should modify the query to reference the\nreplacement column, or remove this column from your query."),Object(s.b)("h2",{id:"issue-1005"},"Issue 1005"),Object(s.b)("pre",null,Object(s.b)("code",Object(r.a)({parentName:"pre"},{}),"The table was deleted or renamed in the database.\n")),Object(s.b)("p",null,"Your query failed because it is referencing a table that no longer exists in\nthe underlying database. You should modify your query to reference the correct\ntable."),Object(s.b)("h2",{id:"issue-1006"},"Issue 1006"),Object(s.b)("pre",null,Object(s.b)("code",Object(r.a)({parentName:"pre"},{}),"One or more parameters specified in the query are missing.\n")),Object(s.b)("p",null,"Your query was not submitted to the database because it's missing one or more\nparameters. You should define all the parameters referenced in the query in a\nvalid JSON document. Check that the parameters are spelled correctly and that\nthe document has a valid syntax."),Object(s.b)("h2",{id:"issue-1007"},"Issue 1007"),Object(s.b)("pre",null,Object(s.b)("code",Object(r.a)({parentName:"pre"},{}),"The hostname provided can't be resolved.\n")),Object(s.b)("p",null,"The hostname provided when adding a new database is invalid and cannot be\nresolved. Please check that there are no typos in the hostname."),Object(s.b)("h2",{id:"issue-1008"},"Issue 1008"),Object(s.b)("pre",null,Object(s.b)("code",Object(r.a)({parentName:"pre"},{}),"The port is closed.\n")),Object(s.b)("p",null,"The port provided when adding a new database is not open. Please check that\nthe port number is correct, and that the database is running and listening on\nthat port."),Object(s.b)("h2",{id:"issue-1009"},"Issue 1009"),Object(s.b)("pre",null,Object(s.b)("code",Object(r.a)({parentName:"pre"},{}),"The host might be down, and cannot be reached on the provided port.\n")),Object(s.b)("p",null,"The host provided when adding a new database doesn't seem to be up.\nAdditionally, it cannot be reached on the provided port. Please check that\nthere are no firewall rules preventing access to the host."),Object(s.b)("h2",{id:"issue-1010"},"Issue 1010"),Object(s.b)("pre",null,Object(s.b)("code",Object(r.a)({parentName:"pre"},{}),"Superset encountered an error while running a command.\n")),Object(s.b)("p",null,"Something unexpected happened, and Superset encountered an error while\nrunning a command. Please reach out to your administrator."),Object(s.b)("h2",{id:"issue-1011"},"Issue 1011"),Object(s.b)("pre",null,Object(s.b)("code",Object(r.a)({parentName:"pre"},{}),"Superset encountered an unexpected error.\n")),Object(s.b)("p",null,"Something unexpected happened in the Superset backend. Please reach out\nto your administrator."),Object(s.b)("h2",{id:"issue-1012"},"Issue 1012"),Object(s.b)("pre",null,Object(s.b)("code",Object(r.a)({parentName:"pre"},{}),"The username provided when connecting to a database is not valid.\n")),Object(s.b)("p",null,"The user provided a username that doesn't exist in the database. Please check\nthat the username is typed correctly and exists in the database."),Object(s.b)("h2",{id:"issue-1013"},"Issue 1013"),Object(s.b)("pre",null,Object(s.b)("code",Object(r.a)({parentName:"pre"},{}),"The password provided when connecting to a database is not valid.\n")),Object(s.b)("p",null,"The user provided a password that is incorrect. Please check that the\npassword is typed correctly."),Object(s.b)("h2",{id:"issue-1014"},"Issue 1014"),Object(s.b)("pre",null,Object(s.b)("code",Object(r.a)({parentName:"pre"},{}),"Either the username or the password used are incorrect.\n")),Object(s.b)("p",null,"Either the username provided does not exist or the password was written incorrectly. Please\ncheck that the username and password were typed correctly."),Object(s.b)("h2",{id:"issue-1015"},"Issue 1015"),Object(s.b)("pre",null,Object(s.b)("code",Object(r.a)({parentName:"pre"},{}),"Either the database is spelled incorrectly or does not exist.\n")),Object(s.b)("p",null,"Either the database was written incorrectly or it does not exist. Check that it was typed correctly."),Object(s.b)("h2",{id:"issue-1016"},"Issue 1016"),Object(s.b)("pre",null,Object(s.b)("code",Object(r.a)({parentName:"pre"},{}),"The schema was deleted or renamed in the database.\n")),Object(s.b)("p",null,"The schema was either removed or renamed. Check that the schema is typed correctly and exists."),Object(s.b)("h2",{id:"issue-1017"},"Issue 1017"),Object(s.b)("pre",null,Object(s.b)("code",Object(r.a)({parentName:"pre"},{}),"The user doesn't have the proper permissions to connect to the database\n")),Object(s.b)("p",null,"We were unable to connect to your database. Please confirm that your service account has the Viewer and Job User roles on the project."),Object(s.b)("h2",{id:"issue-1018"},"Issue 1018"),Object(s.b)("pre",null,Object(s.b)("code",Object(r.a)({parentName:"pre"},{}),"One or more parameters needed to configure a database are missing.\n")),Object(s.b)("p",null,"Not all parameters required to test, create, or edit a database were present. Please double check which parameters are needed, and that they are present."),Object(s.b)("h2",{id:"issue-1019"},"Issue 1019"),Object(s.b)("pre",null,Object(s.b)("code",Object(r.a)({parentName:"pre"},{}),"The submitted payload has the incorrect format.\n")),Object(s.b)("p",null,"Please check that the request payload has the correct format (eg, JSON)."),Object(s.b)("h2",{id:"issue-1020"},"Issue 1020"),Object(s.b)("pre",null,Object(s.b)("code",Object(r.a)({parentName:"pre"},{}),"The submitted payload has the incorrect schema.\n")),Object(s.b)("p",null,"Please check that the request payload has the expected schema."),Object(s.b)("h2",{id:"issue-1021"},"Issue 1021"),Object(s.b)("pre",null,Object(s.b)("code",Object(r.a)({parentName:"pre"},{}),"Results backend needed for asynchronous queries is not configured.\n")),Object(s.b)("p",null,"Your instance of Superset doesn't have a results backend configured, which is needed for asynchronous queries. Please contact an administrator for further assistance."),Object(s.b)("h2",{id:"issue-1022"},"Issue 1022"),Object(s.b)("pre",null,Object(s.b)("code",Object(r.a)({parentName:"pre"},{}),"Database does not allow data manipulation.\n")),Object(s.b)("p",null,"Only ",Object(s.b)("inlineCode",{parentName:"p"},"SELECT")," statements are allowed against this database. Please contact an administrator if you need to run DML (data manipulation language) on this database."),Object(s.b)("h2",{id:"issue-1023"},"Issue 1023"),Object(s.b)("pre",null,Object(s.b)("code",Object(r.a)({parentName:"pre"},{}),"CTAS (create table as select) doesn't have a SELECT statement at the end.\n")),Object(s.b)("p",null,"The last statement in a query run as CTAS (create table as select) MUST be a SELECT statement. Please make sure the last statement in the query is a SELECT."),Object(s.b)("h2",{id:"issue-1024"},"Issue 1024"),Object(s.b)("pre",null,Object(s.b)("code",Object(r.a)({parentName:"pre"},{}),"CVAS (create view as select) query has more than one statement.\n")),Object(s.b)("p",null,"When running a CVAS (create view as select) the query should have a single statement. Please make sure the query has a single statement, and no extra semi-colons other than the last one."),Object(s.b)("h2",{id:"issue-1025"},"Issue 1025"),Object(s.b)("pre",null,Object(s.b)("code",Object(r.a)({parentName:"pre"},{}),"CVAS (create view as select) query is not a SELECT statement.\n")),Object(s.b)("p",null,"When running a CVAS (create view as select) the query should be a SELECT statement. Please make sure the query has a single statement and it's a SELECT statement."),Object(s.b)("h2",{id:"issue-1026"},"Issue 1026"),Object(s.b)("pre",null,Object(s.b)("code",Object(r.a)({parentName:"pre"},{}),"Query is too complex and takes too long to run.\n")),Object(s.b)("p",null,"The submitted query might be too complex to run under the time limit defined by your Superset administrator. Please double check your query and verify if it can be optimized. Alternatively, contact your administrator to increase the timeout period."),Object(s.b)("h2",{id:"issue-1027"},"Issue 1027"),Object(s.b)("pre",null,Object(s.b)("code",Object(r.a)({parentName:"pre"},{}),"The database is currently running too many queries.\n")),Object(s.b)("p",null,"The database might be under heavy load, running too many queries. Please try again later, or contact an administrator for further assistance."),Object(s.b)("h2",{id:"issue-1028"},"Issue 1028"),Object(s.b)("pre",null,Object(s.b)("code",Object(r.a)({parentName:"pre"},{}),"One or more parameters specified in the query are malformatted.\n")),Object(s.b)("p",null,'The query contains one or more malformed template parameters. Please check your query and confirm that all template parameters are surround by double braces, for example, "{{ ds }}". Then, try running your query again.'),Object(s.b)("h2",{id:"issue-1029"},"Issue 1029"),Object(s.b)("pre",null,Object(s.b)("code",Object(r.a)({parentName:"pre"},{}),"The object does not exist in this database.\n")),Object(s.b)("p",null,"Either the schema, column, or table do not exist in the database."),Object(s.b)("h2",{id:"issue-1030"},"Issue 1030"),Object(s.b)("pre",null,Object(s.b)("code",Object(r.a)({parentName:"pre"},{}),"The query potentially has a syntax error.\n")),Object(s.b)("p",null,"The query might have a syntax error. Please check and run again."),Object(s.b)("h2",{id:"issue-1031"},"Issue 1031"),Object(s.b)("pre",null,Object(s.b)("code",Object(r.a)({parentName:"pre"},{}),"The results backend no longer has the data from the query.\n")),Object(s.b)("p",null,"The results from the query might have been deleted from the results backend after some period. Please re-run your query."),Object(s.b)("h2",{id:"issue-1032"},"Issue 1032"),Object(s.b)("pre",null,Object(s.b)("code",Object(r.a)({parentName:"pre"},{}),"The query associated with the results was deleted.\n")),Object(s.b)("p",null,"The query associated with the stored results no longer exists. Please re-run your query."),Object(s.b)("h2",{id:"issue-1033"},"Issue 1033"),Object(s.b)("pre",null,Object(s.b)("code",Object(r.a)({parentName:"pre"},{}),"The results stored in the backend were stored in a different format, and no longer can be deserialized.\n")),Object(s.b)("p",null,"The query results were stored in a format that is no longer supported. Please re-run your query."),Object(s.b)("h2",{id:"issue-1034"},"Issue 1034"),Object(s.b)("pre",null,Object(s.b)("code",Object(r.a)({parentName:"pre"},{}),"The database port provided is invalid.\n")),Object(s.b)("p",null,"Please check that the provided database port is an integer between 0 and 65535 (inclusive)."),Object(s.b)("h2",{id:"issue-1035"},"Issue 1035"),Object(s.b)("pre",null,Object(s.b)("code",Object(r.a)({parentName:"pre"},{}),"Failed to start remote query on a worker.\n")),Object(s.b)("p",null,"The query was not started by an asynchronous worker. Please reach out to your administrator for further assistance."),Object(s.b)("h2",{id:"issue-1036"},"Issue 1036"),Object(s.b)("pre",null,Object(s.b)("code",Object(r.a)({parentName:"pre"},{}),"The database was deleted.\n")),Object(s.b)("p",null,"The operation failed because the database referenced no longer exists. Please reach out to your administrator for further assistance."))}void 0!==i&&i&&i===Object(i)&&Object.isExtensible(i)&&!i.hasOwnProperty("__filemeta")&&Object.defineProperty(i,"__filemeta",{configurable:!0,value:{name:"MDXContent",filename:"src/pages/docs/Miscellaneous/issue_codes.mdx"}}),i.isMDXComponent=!0}}]);
//# sourceMappingURL=component---src-pages-docs-miscellaneous-issue-codes-mdx-5ff7d5d017d5e9922f88.js.map