Skip to content

Fix crash when using equipping Adonia's Ego - #2543

Merged
LocalIdentity merged 1 commit into
PathOfBuildingCommunity:devfrom
juddisjudd:fix/granted-skill-lowest-level
Sep 29, 2026
Merged

LocalIdentity merged 1 commit into
PathOfBuildingCommunity:devfrom
juddisjudd:fix/granted-skill-lowest-level

Conversation

@juddisjudd

Copy link
Copy Markdown
Contributor

Description of the problem being solved:

getGrantedSkillLevel returns level 1 when no level at or below the item's level qualifies. Since the 0.5.5 export (#2505), some granted skills define only higher levels. Pinnacle of Power, granted by Adonia's Ego, has only level 20. This has two effects:

  • Equipping Adonia's Ego sets the granted Pinnacle of Power gem to level 1, which has no level data.
  • A build saved with that gem at level 20, as builds saved with the older data have it, errors in CalcSetup.lua at grantedEffect.levels[level].levelRequirement (attempt to index a nil value). The whole build then fails to calculate.

This change falls back to the lowest level the skill defines, so Pinnacle of Power gets level 20.

Steps taken to verify a working solution:

  • Headless at ce566ea: equip Adonia's Ego on a level 70 character. Pinnacle of Power gets level 1. Setting it to 20, as an older save has it, and recalculating errors at CalcSetup.lua:2167.
  • Same steps with this change: Pinnacle of Power gets level 20, and the build recalculates without error.
  • 10 saved guide and ladder builds with Adonia's Ego failed to calculate at ce566ea. With this change all 10 load, and their Combined DPS is within 4% of what 1bcdb48 (before Export 0.5.5 data and update trade data #2505) gives them.

Link to a build that showcases this PR:

No public link. Any build saved before #2505 with Adonia's Ego equipped reproduces it.

Before screenshot:

CalcSetup.lua:2167: attempt to index a nil value; the build shows no stats.

After screenshot:

The build calculates, with Pinnacle of Power at level 20.

getGrantedSkillLevel falls back to level 1 when no level at or below the
item's level qualifies. The 0.5.5 export defines some granted skills only
at higher levels: Pinnacle of Power, granted by Adonia's Ego, has only
level 20. levels[1] is then nil and CalcSetup errors while setting the
gem's requirements, so any build with the wand fails to calculate. Fall
back to the lowest level the skill defines instead.
@LocalIdentity LocalIdentity added the crash Causes PoB to crash and is High Priority label Sep 29, 2026
@LocalIdentity LocalIdentity changed the title Fix crash when an item grants a skill below its lowest defined level Fix crash when using equipping Adonia's Ego Sep 29, 2026
@LocalIdentity
LocalIdentity merged commit 630bb3d into PathOfBuildingCommunity:dev Sep 29, 2026
5 checks passed
juddisjudd added a commit to pobredux/pob-redux that referenced this pull request Sep 29, 2026
…nia's Ego patch (#35)

Upstream merged the granted skill level fix as PathOfBuildingCommunity/PathOfBuilding-PoE2#2543. The merged change is the same as `patches/poe2/0002`, so this removes the patch. It then moves the PoE2 pin from `ce566eac4` to the current `dev` head, `e6129c54`.

`patches/poe2/0001` (Fist of War, upstream #2538, still open) still applies.

## Upstream commits brought in

| Commit | PR | Corpus effect |
|---|---|---|
| `630bb3d5` | #2543 granted skill level fallback | none (same as the removed patch) |
| `9d354ded` | #2547 Geofri's Sanctuary and Sunken Vessel | none |
| `07d03a94` | #2546 catalyst box for jewels | none (UI only) |
| `3c0de110` | #2537 `utf8.reverse` argument | none |
| `75f461f4` | #2542 radius jewel functions accumulating across mod list rebuilds | 8 builds move |
| `e6129c54` | #2545 Doedre's Undoing infinite DPS | none |

## Golden moves

`bun run golden` on 550 builds: 8 changed, 0 errors. I checked each commit on the 8 builds, and every move comes from #2542. Before that fix, a radius jewel's functions were applied again on each slot mod list rebuild, so the old values were too high.

All 8 are Shaman ladder builds (6 Spell Totem / Grim Pillars, 2 Maul). They lose 3.5% to 35% TotalDPS. Some also lose Mana, and one loses Spirit. Every move goes toward the numbers poe.ninja recorded for the build:

| Build | poe.ninja TotalDPS | Old | New |
|---|---|---|---|
| `3a15d10e8425` | 3,749,877 | 5,798,594 | 3,749,877 |
| `220d6443ad89` | 2,209,806 | 3,024,042 | 2,209,806 |
| `57687f845f27` | 1,148,936 | 1,525,829 | 1,148,936 |
| `bf849e791aeb` | 877,003 | 1,231,591 | 877,003 |
| `9949389c618e` | 189,962 | 250,218 | 189,962 |
| `c560fdd745b5` | 2,961,400 | 3,958,993 | 3,025,280 |
| `4fb76d0be1c6` | 142,485 | 147,615 | 142,485 |
| `cf902a687ca0` | 88,782 | 95,504 | 88,859 |

`golden/poe2.json` is re-accepted. Its header now records the new pin and drops the removed patch.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

crash Causes PoB to crash and is High Priority

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants