Il problema è il momento in cui chiami quella funzione.
Se quando la chiami hai già inviato output al browser, prendi quell'errore e il cookie non parte.