If you are having any type of problem with your SP, the first thing you should do is increase the verbosity of the logging and inspect the log files. To increase the verbosity of logging for your SP, edit the file /etc/shibboleth/shibd.logger. At the very top of the file, change the lines as follows, so that the logging level is set to DEBUG, which is the most verbose logging level.
# set overall behavior
#log4j.rootCategory=INFO, shibd_log, warn_log
log4j.rootCategory=DEBUG, shibd_log, warn_log
Then you need to restart your shibd instance, in order for the configuration changes to take effect.
service shibd restart
The log files for the Shibboleth SP are usually located in /var/log/shibboleth. Note that this will generate a lot of logs, so you will probably want to grep for particular strings, but the cause of the problem you are seeing will very likely be logged somewhere in these files.
Don't forget to decrease the verbosity of logging back to it's original state once you've finished debugging the problem, otherwise you run the risk of using up all the space on your log partition.