i dont really knoow this error but all the errors with "headers already sent" are because you trying to change the session when headers already have been sent.
so first of all check that you dont have a space or newline in the beggining and end of your files, check that you dont have some "echo" command.
A quick suggestion to anyone else that has this error like I did just did:
Use the stack trace and place session_regenerate_id() (or any other function that generates headers) at the line above each call in the stack trace - until you find the file that has a whitespace before <?php or after ?> or causes output by echoing etc.
add header("Content-type: text/html"); // or any header you want before the error occured.
It will then return a more meaningful error like "Cannot modify header information - headers already sent by (output started at /path-to-file/protected/extensions/PHPPDO/phppdo.php:737)"
i’d like to mention that such a king of issue is the main reason to avoid the usage of PHP closing tags ( ?> ) in the PHP-only files like controllers/models/comoponents etc. (except of views of course). By doing so we eliminate the possibility that some evil space after ?> will consume our time to find it