Skip to content

Conversation

@pengying
Copy link
Contributor

@pengying pengying commented Jan 24, 2026

TL;DR

Added a new GridError schema and improved error handling in the OpenAPI specification.

What changed?

  • Created a new GridError schema to standardize error responses
  • Added additionalProperties: true to all error schema details objects to allow for flexible error details
  • Refactored BulkCustomerImportErrorEntry to extend from GridError instead of using a nested error structure
  • Updated webhook response schemas to reference GridError instead of Error

@greptile-apps
Copy link

greptile-apps bot commented Jan 24, 2026

Greptile Overview

Greptile Summary

This PR introduces a new GridError schema to standardize error responses across the API and adds flexibility to error details objects.

Key Changes

  • New GridError schema: Created a reusable error schema with code, message, and details fields, where details includes additionalProperties: true for flexible error information
  • Enhanced error flexibility: Added additionalProperties: true to the details field in all HTTP error schemas (400, 401, 403, 404, 409, 412, 424, 500, 501)
  • Webhook schema migration: Updated IncomingPaymentWebhookForbiddenResponse and IncomingPaymentWebhookUnprocessableResponse to extend GridError instead of Error
  • Bulk import refactoring: Created BulkCustomerImportErrorEntry schema that extends GridError and includes correlationId, simplifying the BulkCustomerImportJob.errors structure

Impact

The changes are backward-compatible in terms of response structure. The addition of additionalProperties: true allows the API to return additional error context without breaking existing clients, while the new GridError schema provides a cleaner foundation for future error responses.

Confidence Score: 5/5

  • This PR is safe to merge with no identified issues
  • The changes are well-structured schema improvements that enhance flexibility without breaking existing functionality. All error schemas consistently include additionalProperties, the new GridError schema follows OpenAPI best practices, and the refactoring simplifies the bulk import error structure while maintaining the same data model
  • No files require special attention

Important Files Changed

Filename Overview
openapi/components/schemas/common/GridError.yaml New GridError schema created with code, message, and details fields; includes additionalProperties: true for flexible error details
openapi/components/schemas/customers/BulkCustomerImportErrorEntry.yaml New schema extending GridError to include correlationId for tracking failed bulk import entries
openapi/components/schemas/customers/BulkCustomerImportJob.yaml Refactored to use BulkCustomerImportErrorEntry reference instead of inline nested error structure
openapi/components/schemas/webhooks/IncomingPaymentWebhookForbiddenResponse.yaml Updated to extend GridError instead of Error for webhook forbidden responses
openapi/components/schemas/webhooks/IncomingPaymentWebhookUnprocessableResponse.yaml Updated to extend GridError instead of Error for webhook unprocessable responses

Sequence Diagram

sequenceDiagram
    participant API as Grid API
    participant Schema as Error Schemas
    participant Client as API Client

    Note over API,Client: Error Response Flow

    Client->>API: API Request (e.g., POST /customers)
    
    alt Invalid Input (400)
        API->>Schema: Generate Error400
        Schema->>Schema: Include code, message, details (additionalProperties: true)
        Schema-->>API: Error Response
        API-->>Client: 400 Error Response
    end

    alt Webhook Error Handling
        API->>Schema: Generate GridError-based Response
        Note over Schema: IncomingPaymentWebhookForbiddenResponse<br/>or IncomingPaymentWebhookUnprocessableResponse
        Schema->>Schema: Extends GridError (code, message, details)
        Schema->>Schema: Add specific fields (reason/requiredFields)
        Schema-->>API: Webhook Error Response
        API-->>Client: Webhook Error Response
    end

    alt Bulk Import Errors
        API->>Schema: Generate BulkCustomerImportErrorEntry
        Schema->>Schema: Extends GridError (code, message, details)
        Schema->>Schema: Add correlationId
        Schema-->>API: Error Entry with correlationId
        API-->>Client: Bulk Import Job with errors array
    end

    Note over Schema: GridError provides base schema<br/>with flexible details object
Loading

@pengying pengying force-pushed the 01-24-feat_flatten_lightningexternalaccountinfo_schema_split_split_split_split branch from 6432728 to e5749d2 Compare January 27, 2026 01:29
Copy link

@greptile-apps greptile-apps bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

1 file reviewed, 1 comment

Edit Code Review Agent Settings | Greptile

@greptile-apps
Copy link

greptile-apps bot commented Jan 27, 2026

Additional Comments (1)

openapi/paths/customers/customers_{customerId}.yaml
Incomplete migration: still references Error.yaml instead of GridError.yaml. For consistency with the rest of this PR, this should be updated to use GridError.yaml.

            $ref: ../../components/schemas/common/GridError.yaml
Prompt To Fix With AI
This is a comment left during a code review.
Path: openapi/paths/customers/customers_{customerId}.yaml
Line: 145:145

Comment:
Incomplete migration: still references `Error.yaml` instead of `GridError.yaml`. For consistency with the rest of this PR, this should be updated to use `GridError.yaml`.

```suggestion
            $ref: ../../components/schemas/common/GridError.yaml
```

How can I resolve this? If you propose a fix, please make it concise.

@pengying pengying force-pushed the 01-24-feat_flatten_lightningexternalaccountinfo_schema_split_split_split branch from 68ab09c to 5786fb9 Compare January 27, 2026 05:18
@pengying pengying force-pushed the 01-24-feat_flatten_lightningexternalaccountinfo_schema_split_split_split_split branch from e5749d2 to a27f6e6 Compare January 27, 2026 05:19
Copy link

@greptile-apps greptile-apps bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

1 file reviewed, 1 comment

Edit Code Review Agent Settings | Greptile

@greptile-apps
Copy link

greptile-apps bot commented Jan 27, 2026

Additional Comments (1)

openapi/paths/customers/customers_{customerId}.yaml
Inconsistent error schema reference - should use GridError.yaml instead of Error.yaml to match the PR's goal of standardizing on GridError

            $ref: ../../components/schemas/common/GridError.yaml
Prompt To Fix With AI
This is a comment left during a code review.
Path: openapi/paths/customers/customers_{customerId}.yaml
Line: 145:145

Comment:
Inconsistent error schema reference - should use `GridError.yaml` instead of `Error.yaml` to match the PR's goal of standardizing on `GridError`

```suggestion
            $ref: ../../components/schemas/common/GridError.yaml
```

How can I resolve this? If you propose a fix, please make it concise.

@pengying pengying force-pushed the 01-24-feat_flatten_lightningexternalaccountinfo_schema_split_split_split branch from 5786fb9 to 79467e5 Compare January 27, 2026 05:24
@pengying pengying force-pushed the 01-24-feat_flatten_lightningexternalaccountinfo_schema_split_split_split_split branch from a27f6e6 to a1379cd Compare January 27, 2026 05:24
Copy link

@greptile-apps greptile-apps bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

1 file reviewed, 1 comment

Edit Code Review Agent Settings | Greptile

@greptile-apps
Copy link

greptile-apps bot commented Jan 27, 2026

Additional Comments (1)

openapi/paths/customers/customers_{customerId}.yaml
Update this to reference GridError for consistency with other error responses

            $ref: ../../components/schemas/common/GridError.yaml

Note: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time!

Prompt To Fix With AI
This is a comment left during a code review.
Path: openapi/paths/customers/customers_{customerId}.yaml
Line: 145:145

Comment:
Update this to reference `GridError` for consistency with other error responses

```suggestion
            $ref: ../../components/schemas/common/GridError.yaml
```

<sub>Note: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time!</sub>

How can I resolve this? If you propose a fix, please make it concise.

@pengying pengying force-pushed the 01-24-feat_flatten_lightningexternalaccountinfo_schema_split_split_split branch from 79467e5 to 9f4bbd9 Compare January 27, 2026 20:38
@pengying pengying force-pushed the 01-24-feat_flatten_lightningexternalaccountinfo_schema_split_split_split_split branch from a1379cd to d0f0475 Compare January 27, 2026 20:38
Copy link

@greptile-apps greptile-apps bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

1 file reviewed, 1 comment

Edit Code Review Agent Settings | Greptile

@greptile-apps
Copy link

greptile-apps bot commented Jan 27, 2026

Additional Comments (1)

openapi/paths/customers/customers_{customerId}.yaml
inconsistent reference - should use GridError instead of Error to match the pattern established in this PR

            $ref: ../../components/schemas/common/GridError.yaml
Prompt To Fix With AI
This is a comment left during a code review.
Path: openapi/paths/customers/customers_{customerId}.yaml
Line: 145:145

Comment:
inconsistent reference - should use `GridError` instead of `Error` to match the pattern established in this PR

```suggestion
            $ref: ../../components/schemas/common/GridError.yaml
```

How can I resolve this? If you propose a fix, please make it concise.

@pengying pengying force-pushed the 01-24-feat_flatten_lightningexternalaccountinfo_schema_split_split_split_split branch from d0f0475 to 94a379a Compare January 27, 2026 21:19
@pengying pengying force-pushed the 01-24-feat_flatten_lightningexternalaccountinfo_schema_split_split_split branch from 9f4bbd9 to 4e17d69 Compare January 27, 2026 21:19
Copy link

@greptile-apps greptile-apps bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

1 file reviewed, 1 comment

Edit Code Review Agent Settings | Greptile

@greptile-apps
Copy link

greptile-apps bot commented Jan 27, 2026

Additional Comments (1)

openapi/paths/customers/customers_{customerId}.yaml
this should reference GridError.yaml not Error.yaml for consistency with the rest of the PR

            $ref: ../../components/schemas/common/GridError.yaml
Prompt To Fix With AI
This is a comment left during a code review.
Path: openapi/paths/customers/customers_{customerId}.yaml
Line: 145:145

Comment:
this should reference `GridError.yaml` not `Error.yaml` for consistency with the rest of the PR

```suggestion
            $ref: ../../components/schemas/common/GridError.yaml
```

How can I resolve this? If you propose a fix, please make it concise.

@pengying pengying force-pushed the 01-24-feat_flatten_lightningexternalaccountinfo_schema_split_split_split branch from 4e17d69 to 5022722 Compare January 27, 2026 23:54
@pengying pengying force-pushed the 01-24-feat_flatten_lightningexternalaccountinfo_schema_split_split_split_split branch from 94a379a to c72b46f Compare January 27, 2026 23:54
@pengying pengying force-pushed the 01-24-feat_flatten_lightningexternalaccountinfo_schema_split_split_split_split branch from c72b46f to 99a29c9 Compare January 27, 2026 23:57
@pengying pengying force-pushed the 01-24-feat_flatten_lightningexternalaccountinfo_schema_split_split_split branch from 5022722 to 03ebf04 Compare January 27, 2026 23:57
Copy link

@greptile-apps greptile-apps bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

1 file reviewed, 1 comment

Edit Code Review Agent Settings | Greptile

@greptile-apps
Copy link

greptile-apps bot commented Jan 28, 2026

Additional Comments (1)

openapi/paths/customers/customers_{customerId}.yaml
reference to Error.yaml should be updated to GridError.yaml for consistency

            $ref: ../../components/schemas/common/GridError.yaml
Prompt To Fix With AI
This is a comment left during a code review.
Path: openapi/paths/customers/customers_{customerId}.yaml
Line: 145:145

Comment:
reference to `Error.yaml` should be updated to `GridError.yaml` for consistency

```suggestion
            $ref: ../../components/schemas/common/GridError.yaml
```

How can I resolve this? If you propose a fix, please make it concise.

@pengying pengying force-pushed the 01-24-feat_flatten_lightningexternalaccountinfo_schema_split_split_split_split branch from 99a29c9 to d8d7c4d Compare January 28, 2026 00:08
@pengying pengying force-pushed the 01-24-feat_flatten_lightningexternalaccountinfo_schema_split_split_split branch from 03ebf04 to db286da Compare January 28, 2026 00:08
Copy link

@greptile-apps greptile-apps bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

1 file reviewed, 1 comment

Edit Code Review Agent Settings | Greptile

@greptile-apps
Copy link

greptile-apps bot commented Jan 28, 2026

Additional Comments (1)

openapi/paths/customers/customers_{customerId}.yaml
Still references old Error.yaml instead of GridError.yaml

            $ref: ../../components/schemas/common/GridError.yaml
Prompt To Fix With AI
This is a comment left during a code review.
Path: openapi/paths/customers/customers_{customerId}.yaml
Line: 145:145

Comment:
Still references old `Error.yaml` instead of `GridError.yaml`

```suggestion
            $ref: ../../components/schemas/common/GridError.yaml
```

How can I resolve this? If you propose a fix, please make it concise.

@pengying pengying force-pushed the 01-24-feat_flatten_lightningexternalaccountinfo_schema_split_split_split branch from db286da to 493e9f8 Compare January 28, 2026 00:15
@pengying pengying force-pushed the 01-24-feat_flatten_lightningexternalaccountinfo_schema_split_split_split_split branch from d8d7c4d to 1c31c37 Compare January 28, 2026 00:15
Copy link

@greptile-apps greptile-apps bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

1 file reviewed, 1 comment

Edit Code Review Agent Settings | Greptile

@greptile-apps
Copy link

greptile-apps bot commented Jan 28, 2026

Additional Comments (1)

openapi/components/schemas/common/Error.yaml
Error schema's details field is missing additionalProperties: true while all other error schemas now have it

  details:
    type: object
    description: Additional error details
    additionalProperties: true
Prompt To Fix With AI
This is a comment left during a code review.
Path: openapi/components/schemas/common/Error.yaml
Line: 9:11

Comment:
`Error` schema's `details` field is missing `additionalProperties: true` while all other error schemas now have it

```suggestion
  details:
    type: object
    description: Additional error details
    additionalProperties: true
```

How can I resolve this? If you propose a fix, please make it concise.

@pengying pengying force-pushed the 01-24-feat_flatten_lightningexternalaccountinfo_schema_split_split_split branch from 493e9f8 to 34de965 Compare January 28, 2026 00:27
@pengying pengying force-pushed the 01-24-feat_flatten_lightningexternalaccountinfo_schema_split_split_split_split branch from 1c31c37 to fbf418e Compare January 28, 2026 00:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants