we are currently using streaming replication on multiple node pairs. We are seeing some issues, but I am mainly interrested in clarification.
When a failover occurs, we touch the trigger file, promoting the previous slave to master. That works perfectly.
For recycling the previous master, we create a recovery.conf (with recovery_target_timeline = 'latest') and *try* to start up. If postgresql starts up, we accept it as a new slave. If it does not, we proceed with a full basebackup.
Which version of postgresql you are using ?
You need to shutdown master first, then promote slave and then other way round, but, this can be clarified only if you let us know the postgresql version. This is quite tricky in 9.2.x and from 9.3.x.