Hearthstone Set Metadata differs from Card Search response

When using the Hearthstone Metadata Sets API endpoint I get roughly 21 sets with specific IDs returned. When using the Card Search API I’m getting cardSetIds that aren’t in the IDs returned by the Hearthstone Metadata Sets data.

For a specific example, when retrieving the card “Astral Communion” from the Card Search API it comes back with an ID of 59731 and a cardSetId of 1439. This card set ID doesn’t exist in the card sets returned by the metadata. Astral Communion is from The Grand Tournament set so I would expect its cardSetId to match the ID returned by the metadata API, which is 15.

I’m trying to create an application that will make a relational mapping between these two IDs however it doesn’t seem that this is possible.

Is there a way to get more information about the setID that is returned by the card search API? I’d like to be able to relate a card to a set using the metadata.

Alternatively I suppose I could query the Card Search API with the set slug and rely on that to return the proper data.

Hmm… As a follow up it seems that Astral Communion has two IDs for the same card. The ID with 2785 has the proper set ID of 15, but the ID of 59731 has the set ID of 1439. Maybe this is just a bug for this card? However this isn’t the only card that I’ve gotten this issue with. I’ve also had this issue with certain hero cards.

I’m not seeing card 59731 anymore but the general case is definitely still an issue. Card sets 3 (basic and/or classic cards?), 4 (hall of fame?), and 17 (some heroes from I dunno where?) are not present in the metadata response but there are cards with these card set ids.