-1 возвращается, если флеш не может определить размер получаемого документа (например, при CHUNKED). Такое часто происходит, когда пытаются получить документ, сгенерированный PHP, или другое динамическое содержимое.
Если сильно необходимо контролировать прогресс, то нужно чётко выставлять размер. Например, для PHP:

PHP код:
ob_start();
//код, который выводит содержимое
header("Content-Length: ".strlen(ob_get_contents()));
ob_end_flush();