Ballerina good first issues

30 open Ballerina issues currently match the default 10+ star filter. Scored difficulty: 5,943 at 1/5, 8,722 at 2/5, 12,675 at 3/5, 12,093 at 4/5, 856 at 5/5. This hub uses the same feed as the homepage, limited to repositories whose GitHub language is Ballerina.

All languages · Browse projects · How to find good first issues · Hacktoberfest 2026

Active projects

Unique repos with open help-wanted issues updated in the last 30 days

Showing 30 of ~30 matching filters (Ballerina · 10+ stars)

List

[data.yaml] Multi-line scalars mangled on serialisation

AI summary

The `data.yaml` module incorrectly serializes multi-line strings by replacing newline characters with the literal 'n' instead of the intended backslash-n escape sequence. This is due to an incorrect use of `String.replaceAll` which treats the replacement as a regular expression. The fix involves using `Matcher.quoteReplacement` or `String.replace` to ensure proper escaping.

Type/Buggood first issuemodule/data.yaml
142
Difficulty
2/5

[Ballerina to OAS] Refactor HATEOAS Support

AI summary

This issue proposes refactoring the HATEOAS support in the Ballerina to OpenAPI tool. The goal is to leverage the parsed `ExpressionNode` directly from the syntax tree instead of manually parsing string values for annotation fields. This change aims to simplify the code and eliminate redundant parsing logic.

Priority/LowType/Taskgood first issueArea/Toolingmodule/openapi-tools
142
Difficulty
2/5

WebSub subscribers should be able to subscribe to multiple topics within one subscription request

AI summary

This issue proposes an enhancement to the WebSub module, allowing subscribers to register for multiple topics within a single subscription request. This would streamline the subscription process and improve efficiency for users managing multiple subscriptions.

Type/Improvementgood first issuemodule/websubCredits/30Area/EventIntegration
142
Difficulty
2/5

The `toAvro` function silently alters values that do not fit the schema — is this intended?

AI summary

This issue highlights that the `toAvro` function in the Ballerina Avro library silently alters values that don't conform to the schema, instead of throwing an error. Three specific cases are detailed: out-of-range integers wrapping, floats truncating into integers/longs, and any type being stringified. The core question is whether these silent alterations are intended behavior or bugs.

Type/Questiongood first issuemodule/avroArea/Library
142
Difficulty
3/5

[data.yaml] Nested block mapping under assigned key panics instead of returning error

AI summary

The `data.yaml` module currently panics when encountering a nested mapping under an assigned key in a YAML string, instead of returning a `yaml:Error`. This is because an unchecked `RuntimeException` is thrown, which is not caught by the parser. The fix involves throwing a specific `YamlParserException` to allow for graceful error handling by callers.

Type/Buggood first issuemodule/data.yaml
142
Difficulty
2/5

Missing ambiguity diagnostics for HTTP service classes and service objects

AI summary

The HTTP compiler plugin fails to report ambiguity diagnostics for resources within HTTP service classes and service objects, unlike equivalent resources in service declarations. This means that potential ambiguities in how payloads are handled in these service forms are not being flagged, leading to inconsistent error reporting. The issue requires extending the analyzer validation to cover service classes and service objects.

Type/Buggood first issuemodule/httpArea/CompilerPluginArea/Library
142
Difficulty
3/5

[data.yaml] Scalar tag regexes use find() instead of matches()

AI summary

The `data.yaml` module incorrectly uses `Matcher.find()` instead of `Matcher.matches()` for scalar tag resolution, leading to `NumberFormatException` for invalid integer formats like '12abc' and '0xZZ'. The fix involves replacing `find()` with `matches()` and adding guards to the octal/hex parsing to ensure `YamlParserException` is thrown as expected.

Type/Buggood first issuemodule/data.yaml
142
Difficulty
2/5

Defaultable header parameters in the HTTP resource is not considered as optional

AI summary

A bug in Ballerina's HTTP module causes header parameters with default values to be treated as mandatory, resulting in a 400 Bad Request error when the header is omitted. This behavior is inconsistent with query parameters, which correctly utilize their default values when not provided. The issue affects Ballerina Swan Lake Update 8.

Points/1.5Priority/HighType/Buggood first issuemodule/httpTeam/PCM
142
Difficulty
3/5

Program crashes with NPE

AI summary

The provided Ballerina program crashes with a NullPointerException when attempting to print a `sql:ParameterizedQuery` within multiple concurrent `printer` functions. The issue appears to stem from how the `io:println` function handles the `sql:ParameterizedQuery` type when called concurrently.

Priority/HighType/Buggood first issuemodule/ioArea/Library
142
Difficulty
3/5

[Improvement]: Ability to change Settings.toml via bal command

AI summary

The user requests the ability to modify the `Settings.toml` file using the `bal` command. This would allow for easier management of different configuration profiles for various development environments, such as dev central, and also suggests moving environment variables like `BALLERINA_DEV_CENTRAL` into `Settings.toml` for convenience.

Type/Improvementgood first issueTeam/DevToolsArea/ProjectAPI
3.8K
Difficulty
3/5

[data.yaml] Duplicate map entry error emits unsubstituted template literal

AI summary

The error message for duplicate map entries in the data.yaml module incorrectly displays an unsubstituted template literal `${key.toString()}` instead of the actual duplicate key. This is due to a mismatch in interpolation syntax between Ballerina/JS and Java, and the error message also has an unbalanced quote. The fix involves correctly substituting the key and balancing the quote in the error message.

Type/Buggood first issuemodule/data.yaml
142
Difficulty
2/5

Avro Schema init panics with invalid schema string

AI summary

The Ballerina Avro package's `Schema` initialization panics when provided with an invalid schema string. According to the specification, it should return a proper error instead of crashing. The provided sample code demonstrates this behavior, resulting in a `SchemaParseException`.

Type/Buggood first issuemodule/avroArea/Library
142
Difficulty
2/5

Also browsing: Python , TypeScript , JavaScript