> ## Documentation Index
> Fetch the complete documentation index at: https://docs.basaltic.sh/llms.txt
> Use this file to discover all available pages before exploring further.

# Resume failed default network provisioning

> Requires a personal user with a current role assignment in this account. Progress and dismissal are shared by all account members. Resource operations still require their normal permissions.

<Info>
  Requires **no IAM action**. Access is decided by the endpoint's own
  rules rather than by a policy — see the description above.
</Info>


## OpenAPI

````yaml /api-reference/specs/workspace.yaml post /v1/accounts/{account_id}/onboarding/retry
openapi: 3.0.3
info:
  title: Basaltic Workspace API
  version: 1.0.0
  description: >
    Organization management: organizations, accounts, human users, users-only
    groups, and organization policies. Account IAM identities may receive
    explicitly delegated organization policies through this API. Personal
    authentication remains at the IAM endpoint.


    Organization resources are global and are resolved in the authenticated
    organization. Canonical CRNs are crn:workspace:::<type>/<name-or-uuid>.
    Organization policies are separate from account policies; shared system
    policies use crn:workspace:::system-policy/<name>.
  contact:
    name: Basaltic Support
    email: ping@basaltic.sh
  license:
    name: Proprietary
    url: https://basaltic.sh/terms
servers:
  - url: https://workspace.basaltic.sh
    description: Global API endpoint
security:
  - BearerAuth: []
paths:
  /v1/accounts/{account_id}/onboarding/retry:
    post:
      tags:
        - Workspace
      summary: Resume failed default network provisioning
      description: >-
        Requires a personal user with a current role assignment in this account.
        Progress and dismissal are shared by all account members. Resource
        operations still require their normal permissions.
      operationId: retryAccountProvisioning
      parameters:
        - name: account_id
          in: path
          required: true
          schema:
            type: string
            format: uuid
      responses:
        '200':
          description: Current account onboarding
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccountOnboardingResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
      security:
        - BearerAuth: []
components:
  schemas:
    AccountOnboardingResponse:
      type: object
      required:
        - onboarding
      properties:
        onboarding:
          $ref: '#/components/schemas/AccountOnboarding'
    AccountOnboarding:
      type: object
      description: >-
        Account-shared first-server progress. New accounts provision one IPv4
        public subnet, an internet gateway, and a security group. No NAT gateway
        or public IP is allocated during setup. Existing accounts are never
        automatically provisioned.
      required:
        - account_id
        - region
        - provisioning_status
        - provisioning_step
        - dismissed
        - welcome_seen
        - connection_recorded
        - steps
      properties:
        account_id:
          type: string
          format: uuid
        region:
          type: string
        provisioning_status:
          type: string
          enum:
            - pending
            - provisioning
            - ready
            - failed
            - existing
        provisioning_step:
          type: string
        error_code:
          type: string
        dismissed:
          type: boolean
        welcome_seen:
          type: boolean
        connection_recorded:
          type: boolean
        steps:
          type: array
          items:
            type: object
            required:
              - id
              - complete
            properties:
              id:
                type: string
                enum:
                  - ssh
                  - launch
                  - connect
              complete:
                type: boolean
        vpc_id:
          type: string
          format: uuid
        subnet_id:
          type: string
          format: uuid
        security_group_id:
          type: string
          format: uuid
        instance_id:
          type: string
          format: uuid
        confirmed_instance_id:
          type: string
          format: uuid
    Error:
      type: object
      required:
        - error
      properties:
        error:
          type: object
          required:
            - code
            - message
            - request_id
          properties:
            code:
              type: string
              description: Error code identifying the type of error
              example: INVALID_INPUT
            message:
              type: string
              description: Human-readable error message
              example: Invalid request parameters
            params:
              type: object
              additionalProperties: true
              description: >-
                Optional non-sensitive values for interpolation of localized
                errors, keyed by error code. Never present for server errors.
              example:
                instances: 2
                pools: 0
            request_id:
              type: string
              format: uuid
              description: Request ID for debugging
              example: 550e8400-e29b-41d4-a716-446655440000
  responses:
    BadRequest:
      description: Invalid request parameters
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error:
              code: INVALID_INPUT
              message: Invalid request parameters
              request_id: 550e8400-e29b-41d4-a716-446655440000
    Unauthorized:
      description: Authentication required or token invalid
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error:
              code: UNAUTHORIZED
              message: Authentication required
              request_id: 550e8400-e29b-41d4-a716-446655440000
    Forbidden:
      description: Insufficient permissions
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error:
              code: ACCESS_DENIED
              message: You don't have permission to perform this action
              request_id: 550e8400-e29b-41d4-a716-446655440000
    NotFound:
      description: Resource not found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error:
              code: NOT_FOUND
              message: Resource not found
              request_id: 550e8400-e29b-41d4-a716-446655440000
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: |
        An OAuth 2.0 bearer token, sent as `Authorization: Bearer <token>`.
        This is the recommended way to authenticate.

        Get one by exchanging a service account's access key pair at
        `POST /v1/oauth/token` with `grant_type=client_credentials`. It is the
        standard client-credentials grant, so any OAuth-aware library will
        obtain and refresh it for you.

        ```
        curl -s -u "$KEY_ID:$SECRET" -d grant_type=client_credentials \
          https://iam.basaltic.sh/v1/oauth/token
        ```

        Tokens last an hour by default. The same access key pair is separately
        your AWS SigV4 credential for the S3-compatible object endpoint, which
        speaks nothing else.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.