Ensure correct username when using pg_restore
If you want to create the plpgsql extension I believe you have to be Superuser.  My recommendation is to make app_user temporarily a superuser and then revert this.  Superusers also are treated as owners of everything.

ALTER USER app_user WITH SUPERUSER;


run the restore, then when you are done

ALTER USER app_user WITH NOSUPERUSER;


This should avoid any other permissions issues but still leave you with the permissions you want.