Skip to content

Conversation

@shanebarakat
Copy link

Legal Boilerplate

Look, I get it. The entity doing business as "Sentry" was incorporated in the State of Delaware in 2015 as Functional Software, Inc. and is gonna need some rights from me in order to utilize my contributions in this here PR. So here's the deal: I retain all rights, title and interest in and to my contributions, and by keeping this boilerplate intact I confirm that Sentry can use, modify, copy, and redistribute my contributions, under Sentry's choice of terms.

@shanebarakat shanebarakat requested review from a team as code owners October 17, 2025 01:12
@github-actions github-actions bot added the Scope: Backend Automatically applied to PRs that change backend components label Oct 17, 2025
cursor[bot]

This comment was marked as outdated.

Comment on lines +414 to +424
else:
new_status_details["inFutureRelease"] = future_release_version
res_type = GroupResolution.Type.in_future_release
res_type_str = "in_future_release"
res_status = GroupResolution.Status.pending

# Pass placeholder release to process_group_resolution
release = release_placeholder

# Leave activity_data["version"] as ""
# and set activity_data["future_release_version"] in process_group_resolution
Copy link
Contributor

Choose a reason for hiding this comment

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

Potential bug: When resolving an issue in a future release that doesn't exist, activity_data is not initialized, causing a NameError in process_group_resolution.
  • Description: When resolving an issue with a status of resolvedInFutureRelease for a release that does not yet exist, the release variable is None. This directs control flow to an else block where the activity_data variable is never initialized. Later, this uninitialized variable is passed as an argument to the process_group_resolution function, which will raise a NameError. This failure occurs during a primary use case for the feature, which is resolving an issue against a future, non-existent release version.

  • Suggested fix: Initialize activity_data to an empty dictionary within the else block that handles future releases that do not yet exist. For example, add activity_data = {} at the beginning of the block, similar to how other resolution paths handle this variable.
    severity: 0.9, confidence: 0.98

Did we get this right? 👍 / 👎 to inform future reviews.

Dashboard-User-Id: 56238550-c99b-43c7-916d-956ef2e03a51
"version_raw"
)
release_raw = parse_release(release.version, json_loads=orjson.loads).get("version_raw")
return compare_version_relay(future_release_raw, release_raw) > 0
Copy link
Contributor

Choose a reason for hiding this comment

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

Bug: Inconsistent Error Handling in Version Parsing

The clear_future_release_resolutions function calls parse_release on release.version without handling RelayError. While is_semver_version is checked, parse_release can still fail for malformed semver strings, potentially crashing the task. This contrasts with the future_release_version parsing in the same function, which includes error handling.

Additional Locations (1)

Fix in Cursor Fix in Web

@getsantry
Copy link
Contributor

getsantry bot commented Nov 7, 2025

This pull request has gone three weeks without activity. In another week, I will close it.

But! If you comment or otherwise update it, I will reset the clock, and if you add the label WIP, I will leave it alone unless WIP is removed ... forever!


"A weed is but an unloved flower." ― Ella Wheeler Wilcox 🥀

@getsantry getsantry bot added the Stale label Nov 7, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Scope: Backend Automatically applied to PRs that change backend components Stale

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants