Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Unable to create/see datasets #29930

Open
3 tasks
techieravishah opened this issue Aug 13, 2024 · 1 comment
Open
3 tasks

Unable to create/see datasets #29930

techieravishah opened this issue Aug 13, 2024 · 1 comment
Labels
data:connect:mysql Related to MySQL data:dataset Related to dataset configurations

Comments

@techieravishah
Copy link

Bug description

Hi Team,

I recently installed Superset 4.0.2 with MYSQL as database. Both of them are installed in the same VM. I have one database that I need to use to generate dashboards. We tried creating datasets but unable to create one.

How to reproduce the bug

  1. Installed Superset 4.0.2 + MYSQL8

  2. OS - Linux Ubuntu 22.04 LTS

  3. Logged in as an admin in superset. Navigate to Settings -> Database Connections -> Added a MYSQL Database -
    image

  4. Connection was successful.

  5. Navigated to Datasets -> Clicked on +Dataset

  6. Selected Database, Schema, Table

  7. Clicked on Create Dataset and Create Chart

  8. Got redirected to Charts screen, there I was unable to select the dataset.
    image

Not sure, what is the issue. The only thing I was able to see in logs is - "POST /api/v1/dataset/ HTTP/1.1" 422

Can anyone assist with this errors?

Screenshots/recordings

No response

Superset version

master / latest-dev

Python version

I don't know

Node version

I don't know

Browser

Chrome

Additional context

No response

Checklist

  • I have searched Superset docs and Slack and didn't find a solution to my problem.
  • I have searched the GitHub issue tracker and didn't find a similar bug report.
  • I have checked Superset's logs for errors and if I found a relevant Python stacktrace, I included it here as text in the "additional context" section.
@dosubot dosubot bot added data:connect:mysql Related to MySQL data:dataset Related to dataset configurations labels Aug 13, 2024
Copy link

dosubot bot commented Aug 13, 2024

Hey @techieravishah! I'm here to help you with the issue you're facing. I'm a bot that can assist with bug fixes, answer questions, and guide you on becoming a contributor. Let's tackle this together!

The error message "POST /api/v1/dataset/ HTTP/1.1" 422 indicates a validation issue with the data being sent to create the dataset. The 422 status code means "Unprocessable Entity," which typically points to validation errors in the request payload.

To diagnose and resolve this issue, follow these steps:

  1. Ensure Correct JSON Payload: Verify that the JSON payload sent to the /api/v1/dataset/ endpoint is correctly formatted and contains all required fields. The DatasetPostSchema class defines the required fields and their validation rules:

    class DatasetPostSchema(Schema):
        database = fields.Integer(required=True)
        catalog = fields.String(allow_none=True, validate=Length(0, 250))
        schema = fields.String(allow_none=True, validate=Length(0, 250))
        table_name = fields.String(required=True, allow_none=False, validate=Length(1, 250))
        sql = fields.String(allow_none=True)
        owners = fields.List(fields.Integer())
        is_managed_externally = fields.Boolean(allow_none=True, dump_default=False)
        external_url = fields.String(allow_none=True)
        normalize_columns = fields.Boolean(load_default=False)
        always_filter_main_dttm = fields.Boolean(load_default=False)
  2. Check Server Logs: Look for detailed error messages in the server logs that might provide more context about why the dataset creation failed.

  3. Enable Detailed Logging: To capture more information, enable detailed logging by setting the logger level to DEBUG for the relevant module. You can do this by adding the following configuration:

    import logging
    
    # Set the logger for the specific module to DEBUG level
    logging.getLogger('superset.datasets.api').setLevel(logging.DEBUG)

    You can place this configuration in your main application setup or configuration file where the logging is initialized.

  4. Known Issues: There are known issues in Superset 4.0.2 related to dataset creation that might cause a 422 error due to DatasetInvalidError or DatasetCreateFailedError during the dataset creation process [1].

By following these steps, you should be able to identify and resolve the issue causing the 422 error during dataset creation.

To continue talking to Dosu, mention @dosu.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
data:connect:mysql Related to MySQL data:dataset Related to dataset configurations
Projects
None yet
Development

No branches or pull requests

1 participant