Reminders on iOS is often out of sync with Reminders on my other devices and iCloud. How do I force it to sync?
Opening up the calendar and allowing it (or forcing) to sync will do the trick, though oftentimes imperfectly.
To force calendar to sync, open it up and the tap "Calendars" at the bottom, then swipe down.
As far as "imperfectly" goes, I mean it doesn't seem to sync all tasks all the time. I haven't figured out what the pattern is there, but it seems that it's usually recurring tasks that have issues.
I found that adding a dummy item in a list on my iPhone initiates a sync, i.e. it fetches changes from other devices. Similarly, adding items in my iPhone updates my iMac and iPad instantly. The issue seem to be the iPhone not initiating sync without local changes on the iPhone. Note that on your iPhone, sync will not happen until after you press Done (or possibly pressing return is enough) or select another list.
Unfortunately, from what I can find, there isn’t any way to manually sync reminders between devices; it just happens. There are some things that you can do, however (assuming you are on iOS 8.3 and OS X Yosemite 10.10.3):
Make sure that both your iOS devices and your Mac are synced with the same iCloud account. On your iOS account, go to Settings > iCloud and make sure that Reminders is on. Then go to your Mac and go to System Preferences, then click on iCloud and make sure that Reminders is on.
If Reminders is on, turn them off on both devices. I personally like to wait about 5 minutes before turning them back on. Things should reset and start working again.
These are the only solutions that I have right now. If I think of more, I'll edit this answer and add them.
Make sure the Reminders app has access to cellular data if you are not using wifi. Settings>Cellular>Reminders>toggle on
This solution only applies to those who do not have other problems, are relying on cellular data and are not connected to Wi-Fi.
Seems obvious, but I spent a lot of time trying the most voted solutions here and nothing was working until I stumbled on this simple solution.