Retool Storage not configured - Self Hosted Instance

Hi all, getting an odd error when trying to use the retool storage within our self hosted environment.

The resource is setup with its own S3 bucket, access policies for the user/bucket include ListBucket, PutObject, GetObject, GetBucketCORS, DeleteObject.

The retool storage resource passes on text connection and all seems correct, however when trying to use it within an app we only get the error message:

  • statusCode:400
  • error:"Bad Request"
  • message:"Retool Storage not configured"
  • data:null

Also when trying to see the files in storage (via retool instance url /files) there is an instant redirect back to the resource itself, is this intended, or does it indicate something is wrong with the bucket?

Has anyone seen or overcome this on self-hosted?

Just as an update on this, configuring the same bucket as its own S3 resource works fine so I know its not a permissions/access issue, my guess is its a config I've missed somewhere to enable the retool storage with the on-prem setup.

If it helps in any way our instances are on ECS and deployed via terrafom

Hi @gthorp,
Can you provide some information from your network tab in your developer tools for this request? Could you download the HAR file when this request fails and send it to me? Click on the download arrow just below your navbar in your dev tools. Make sure "Preserve log" is checked and that "All" is selected on the Network tab. Thanks!

Also, what version of retool are you using?

@gthorp,
Can I please see your terraform?

Thanks!

Sure!

module "retool_temporal_image" {
  source  = "terraform-aws-modules/lambda/aws//modules/docker-build"
  version = "~> 4.7.2"

  create_ecr_repo = true
  ecr_repo        = "${module.naming.prefix}-${var.service_config.component}-${var.service_config.instance}-retool-temporal"
  source_path     = "${path.module}/retool_temporal_image"
}
module "retool" {
    source = "git::https://github.com/tryretool/terraform-retool-modules.git//modules/aws_ecs"
    aws_region = var.service_config.aws_region
    vpc_id = data.aws_vpc.vpc.id
    public_subnet_ids = data.aws_subnets.public.ids
    private_subnet_ids = data.aws_subnets.private.ids
    retool_license_key = var.license_key
    ssh_key_name = ""
    ecs_retool_image = module.retool_image.image_uri 
    launch_type = "FARGATE"
    workflows_enabled = true 
    rds_instance_engine_version = 16.3
    use_existing_temporal_cluster = false
    temporal_aurora_engine_version = 16.3
    temporal_aurora_backup_retention_period = 35
    temporal_aurora_preferred_backup_window = "22:00-00:00"
    alb_http_redirect = true
    cookie_insecure = false

    
    additional_temporal_env_vars = [
      {
        name  = "TEMPORAL_IMAGE"
        value = module.retool_temporal_image.image_uri
      }
    ]


    alb_ingress_rules = [
      {
        description      = "Global HTTPS inbound"
        from_port        = "443"
        to_port          = "443"
        protocol         = "tcp"
        cidr_blocks      = ["0.0.0.0/0"]
        ipv6_cidr_blocks = ["::/0"]
      },
       {
      description      = "Global HTTP inbound"
      from_port        = "80"
      to_port          = "80"
      protocol         = "tcp"
      cidr_blocks      = ["0.0.0.0/0"]
      ipv6_cidr_blocks = ["::/0"]
      }
    ]

    container_ingress_rules = {
    first = {
      description = "Global HTTP inbound ipv4"
      from_port   = "80"
      to_port     = "3000"
      protocol    = "tcp"
      cidr_block  = "0.0.0.0/0"
    },
    second = {
      description     = "Global HTTP inbound ipv6"
      from_port       = "80"
      to_port         = "3000"
      protocol        = "tcp"
      ipv6_cidr_block = "::/0"
    },
    third = {
      description = "Global HTTPS inbound ipv4"
      from_port   = "443"
      to_port     = "3000"
      protocol    = "tcp"
      cidr_block  = "0.0.0.0/0"
    },
    fourth = {
      description     = "Global HTTPS inbound ipv6"
      from_port       = "443"
      to_port         = "3000"
      protocol        = "tcp"
      ipv6_cidr_block = "::/0"
    }
  }
}

hi @gthorp ,
Thanks for sending your terraform. Can you also please download your HAR file (see image above) and upload that here?

Thanks!