First, while vacuum is usually preferred to vacuum full, in this case, I usually find that vacuum full clears up enough cruft to be worth it (not always, but especially if you are also having performance issues).
Secondly I would recommend using the vacuumdb command from the shell instead of psql because it has some features that will help avoid some issues.
Try:
vacuumdb -a
Or if you want to force reclaim space (if you are suffering from db bloat relating to not vacuuming:
vacuumdb -f -a
You may need to run this as the postgres user. It accepts the same parameters for authentication that psql does.
Best Wishes,
Chris Travers