I am using Grunt to dump my local db, search and replace URLs in it (and account for serialization by using grunt-peach based on Peach), send it to my staging server, then import it into my staging db. I use Grunt because I can accomplish all of this with one quick command line entry.
However, after a successful db transfer to my staging server, any widgets—either custom widgets or the built in text widget that comes bundled with WordPress—do not appear on the frontend or in the backend (Appearance->Widgets screen) of my staging server after a transfer if they contain an internal link (i.e., a link to a page or post within my site). If they contain an external link (e.g., to stackoverflow.com) then the widget appears on the frontend and in the backend as expected.
I've examined the db entries for the widgets in question on the staging server after a successful transfer. The links are present, they correctly point to the staging server URL instead of my local URL, and the new character counts (serialization) appear correct.
Does anyone know what the issue could be and how I can ensure all of my widgets containing internal links transfer successfully?
EDIT: Upon further inspection, the serialization is not corrected after migration. I suspect this is a bug with Peach opened an issue.