diff --git a/tencentcloud/resource_tc_postgresql_instance.go b/tencentcloud/resource_tc_postgresql_instance.go index 2c9c9e61cf..478ea35f6f 100644 --- a/tencentcloud/resource_tc_postgresql_instance.go +++ b/tencentcloud/resource_tc_postgresql_instance.go @@ -1000,12 +1000,12 @@ func resourceTencentCloudPostgresqlInstanceRead(d *schema.ResourceData, meta int instance, has, inErr = postgresqlService.DescribePostgresqlInstanceById(ctx, d.Id()) if inErr != nil { ee, ok := inErr.(*sdkErrors.TencentCloudSDKError) - if ok && ee.GetCode() == "ResourceNotFound.InstanceNotFoundError" { + if ok && (ee.GetCode() == "ResourceNotFound.InstanceNotFoundError" || ee.GetCode() == "InvalidParameter") { return nil } return retryError(inErr) } - if IsContains(POSTGRESQL_RETRYABLE_STATUS, *instance.DBInstanceStatus) { + if instance != nil && IsContains(POSTGRESQL_RETRYABLE_STATUS, *instance.DBInstanceStatus) { return resource.RetryableError(fmt.Errorf("instance %s is %s, retrying", *instance.DBInstanceId, *instance.DBInstanceStatus)) } return nil diff --git a/tencentcloud/service_tencentcloud_postgresql.go b/tencentcloud/service_tencentcloud_postgresql.go index 086ce61f81..cb4d073bd3 100644 --- a/tencentcloud/service_tencentcloud_postgresql.go +++ b/tencentcloud/service_tencentcloud_postgresql.go @@ -359,18 +359,10 @@ func (me *PostgresqlService) DescribePostgresqlInstanceById(ctx context.Context, ratelimit.Check(request.GetAction()) response, err := me.client.UsePostgresqlClient().DescribeDBInstanceAttribute(request) if err != nil { - ee, ok := err.(*sdkErrors.TencentCloudSDKError) - if !ok { - errRet = err - return - } - if ee.Code == "InvalidParameter" || ee.Code == "ResourceNotFound.InstanceNotFoundError" { - errRet = nil - } else { - errRet = err - } + errRet = err return } + if response == nil || response.Response == nil { errRet = fmt.Errorf("TencentCloud SDK return nil response, %s", request.GetAction()) return