SERVER - game error -- Strength of Harvest
- Dominant language
- Java
- Stars
- 2.4k
- Forks
- 940
- Avg merge
- 2d 12h
- Merged PRs (30d)
- 160
Description
Xmage crashes whenever I am given the option of searching my library and selecting a card and I select Strength of Harvest.
Error type: SERVER - game error
Client version: 1.4.60-V2 (build: 2026-06-28 13:13)
Java version: 1.8.0_201
Default charset: UTF-8
Time: 2026-07-04T22:44:41Z
Game error occurred:
java.lang.IllegalArgumentException: Something wrong, found etb aura with empty spell ability or without any targets: Strength of the Harvest [f7b] (ModalDoubleFacedCard -> StrengthOfTheHarvest), source: When {this} dies, you may exile this card from your graveyard. If you do, search your library for an enchantment card, put that card onto the battlefield, then shuffle.
Server version: 1.4.60-V2 (build: 2026-06-28 13:13)
Game state:
Two Player Duel; T16.M1; active: spike; stack: 1 (top: stack ability ({T}, Sacrifice a creature: You gain 1 life.))
Stack trace:
```
mage.players.PlayerImpl.moveCards(PlayerImpl.java:5023)
mage.abilities.effects.common.search.SearchLibraryPutInPlayEffect.apply(SearchLibraryPutInPlayEffect.java:72)
mage.abilities.effects.common.DoIfCostPaid.applyEffects(DoIfCostPaid.java:141)
mage.abilities.effects.common.DoIfCostPaid.apply(DoIfCostPaid.java:119)
mage.abilities.AbilityImpl.resolveMode(AbilityImpl.java:232)
mage.abilities.AbilityImpl.resolve(AbilityImpl.java:216)
mage.abilities.TriggeredAbilityImpl.resolve(TriggeredAbilityImpl.java:279)
mage.game.stack.StackAbility.resolve(StackAbility.java:85)
mage.game.GameImpl.resolve(GameImpl.java:1842)
mage.game.GameImpl.playPriority(GameImpl.java:1763)
mage.game.turn.Step.priority(Step.java:73)
mage.game.turn.Phase.playStep(Phase.java:205)
mage.game.turn.Phase.play(Phase.java:91)
mage.game.turn.Turn.play(Turn.java:132)
mage.game.GameImpl.playTurn(GameImpl.java:1180)
mage.game.GameImpl.play(GameImpl.java:1087)
mage.game.GameImpl.start(GameImpl.java:1063)
mage.server.game.GameWorker.call(GameWorker.java:35)
mage.server.game.GameWorker.call(GameWorker.java:16)
java.util.concurrent.FutureTask.run(FutureTask.java:266)
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
java.lang.Thread.run(Thread.java:748)
```
Last game logs:
10:43 PM, T15.DR: zander draws a card
10:43 PM, T15.M1: zander puts Scattered Groves [47a] from hand onto the Battlefield
10:43 PM, T15.M1: zander plays Scattered Groves [47a]
10:43 PM, T15.DA: zander skip attack
10:43 PM: TURN 16 for spike (20 - 13)
10:43 PM, T16.DR: spike draws a card
10:43 PM, T16.M1: spike casts Academy Rector [938] from hand
10:43 PM, T16.M1: spike puts Academy Rector [938] from stack onto the Battlefield
10:43 PM, T16.M1: spike puts Hallowed Fountain [2c9] from hand onto the Battlefield
10:43 PM, T16.M1: spike plays Hallowed Fountain [2c9]
10:44 PM, T16.M1: spike sacrificed Academy Rector [938] (source: High Market [eb3])
10:44 PM, T16.M1: spike activates: you gain 1 life. from High Market [eb3]
10:44 PM, T16.M1: spike - Ability triggers: Academy Rector [938] - When Academy Rector [938] dies, you may exile this card from your graveyard. If you do, search your library for an enchantment card, put that card onto the battlefield, then shuffle.
10:44 PM, T16.M1: spike moves Academy Rector [938] from graveyard to the exile zone
10:44 PM, T16.M1: spike paid for Academy Rector [938] - Exile to search for an enchantment?
10:44 PM, T16.M1: spike searches their library (source: Academy Rector [938])
Contributor guide
No contributing guide indexed for this repository
Research direction
Start with mage.players.PlayerImpl.moveCards and mage.abilities.effects.common.search.SearchLibraryPutInPlayEffect, following the stack trace from the library search triggered by Academy Rector. Reproduce the Strength of the Harvest selection scenario and inspect why the selected card reaches the battlefield-move logic with an empty or untargeted ability. Done means selecting Strength of the Harvest no longer crashes the server and the search completes.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- backend, game-dev
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 58/100