It is possible to play the game on multiple devices and “link” the progress on all these devices together via an e-mail submitted to PopCap. The progress on each device is synchronized (“synced”) with a database kept on PopCap's servers and is propagated to all other devices.
Problem is, this synchronization is not constant (in real-time), because a device cannot be assumed to be connected to the Internet all the time. So, a progress change (leveling up, acquiring seeds, coins, gems, mints, gauntlets, or completing a quest) is not reflected immediately to this database but only when a “sync” event occurs.
It is possible for the player to request such a sync event manually, by going to the profile selection screen, tapping on the cloud icon and then on the “Force Sync Player Data” button on the dialog that appears. However, the game will also try to sync on its own as soon as it is on the profile selection screen (without the player having to do anything else), provided that the device is connected to the Internet.
However, since the syncing does not happen immediately after a progress change occurs, we have the so-called problem of “synchronizing off-line databases”. This is a well-known problem in computer science. There are well-researched methods for solving it. Since it most often occurs with mobile devices, there are companies that sell ready-made libraries that can be used to achieve this goal.
However, instead of using somebody else's established solution, PopCap have opted on designing some in-house kludge. Unsurprisingly, they have screwed up. As a result of this screw-up, it is possible for the player to lose hard-earned seeds while playing the game on multiple devices, if they are not careful.
Before outlining the scenarios when this can happen, I would like to emphasize that the syncing of the in-game currencies (coins, gems, mints, and gauntlets) is done correctly in the game. By “correctly”, I mean that it actually works and no such currencies can be lost. The actual implementation is again kludgy and involves keeping two spare copies of the game save file – but, hey, as long as it works, who am I to judge.
The seeds, however, are another matter. Below I will outline two scenarios, which result in the player losing seeds. In my example, the player plays on two linked devices, but exactly the same problem can occur when playing on more than two devices.
I would like to emphasize, that these aren't “bugs” that can be fixed. They are design flaws. The synchronization algorithm is simply wrong, not buggy, and in order to eliminate such problems, it needs to be re-designed from scratch. So, don't expect these problems to disappear any time soon. Instead, be aware of them and of the possible workarounds that I'll also provide.
Losing seeds when playing the game normally
Basically, if you get S1 seeds on device D1, then S2 seeds of the same kind (i.e., for the same plant; this is important) on device D2, and then sync the two devices, common sense suggests that you should end up with S1+S2 seeds on both devices. Sadly, the reality is somewhat different. You will end up with max(S1, S2) seeds on both devices – i.e., with either S1 or S2 seeds, whichever is larger. In other words, you'll lose the smaller amount of seeds.
Here is how to reproduce the problem.
On device D1, by 20 seeds for 5,000 coins from one of the offers that appears in the Shop.
Without syncing (i.e., without going to the profile selection screen) any device (this is important!), buy 20 seeds for the same plant for another 5,000 coins on device D2.
Sync the two devices.
You will have 10,000 coins less (because coins, gems, mints, and gauntlets are synced correctly and both of your spendings of 5,000 coins were reflected) but only with 20 additional seeds (instead of the 40 that you bought).
Workaround: Try to sync (i.e., visit the profile selection screen) a device as soon as you get some seeds. This will make sure that your acquisition is reflected in the database on PopCap's server and will be delivered to any other device that also syncs. Similarly, before doing anything that could result you acquiring seeds on a device, sync this device first. This will make sure that any acquisitions from other synced devices that were stored in the database on PopCap's servers, will be delivered to this device.
TL;DR: Sync a device before getting any seeds and sync it again after getting some.
Losing season rewards
The season rewards are seeds for the plant featured in the Arena, which you get when reaching a particular number of crowns when playing the Arena. There are very few such seed rewards (20, 30, 50, 150, 200, and 300 seeds, received when reaching 15, 100, 150, 300, 500 and 1,000 crowns respectively). since these seeds are few and far between, losing one of these season rewards is especially annoying. In the scenario below I'll outline how to lose the 300-seed reward.
Play the arena until you reach 990 crowns. Make sure both your devices are synced – i.e., that you see that you have 990 crowns when looking at either of them.
Win an Arena match on the first device. You'll reach 995 crowns on it.
Without syncing (this is important), win an Arena match on the second device. You'll reach 995 crowns on it, too.
Sync the two devices. You'll have 1,000 crowns on both of them – but you won't get the 300-seed reward on any of them.
In order to understand what is happening, you need to know two things. First of all, how many crowns total you have is kept locally in the game save file and is subject to syncing between devices. (Unlike the number of crowns you have in the current tournament – the number you see on the leaderboard – which is kept on PopCap's servers.) Second, you get a season reward when, after playing, your total number of crowns reaches (or exceeds) the respective number at which the reward is given. Just having that many crowns is not enough to get the reward – the game has to see you reaching that number after finishing a match.
So, in the above scenario, you start with 990 crowns on both devices, you make 5 on the first (and don't get the reward, because you haven't reached 1,000 yet), make another 5 on the second (and again don't get the reward because the game hasn't seen you reach 1,000 crowns there), then after syncing you end up with 990 + 5 + 5 = 1,000 crowns on both devices – but you reach this number after syncing, not after finishing a match, so the game does not give you the reward. And since the game sees that you have already reached 1,000 crowns, it assumes that you have already received the reward and won't give it to you after subsequent plays, no matter how many more crowns you make.
Workaround: The workaround for this problem is similar to the previous one. As soon as you make some crowns on one device, make sure that you sync it. Before playing an Arena match, make sure you sync the device first. This will ensure that the total number of crowns is always up-to-date on all your devices and matches the number that PopCap has in their database for you.
Of course, all this manual constant syncing is kinda annoying but that's what you get when amateurs try their hand at solving a difficult computer science problem.