Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

In this Discussion

osTicket v1.10 (stable) and Maintenance Release v1.9.15 are now available! Go get it now

Client side only, file attachment to ticket causes 'File Upload Error' undefined 403

osTicket version 1.9.9-1-gbe211.38
Web server:  nginx/1.0.15
MySQL:  5.5.44
PHP:  5.4.23

Attaching a file(s) to a new or existing ticket works fine when logged on as an agent, but is not working on the client side.

Using Chrome(version 44.0.2403.155m), on the client side, when i try to attach a file, I get a pop-up box upon clicking on the 'Create' button preventing the creation of the ticket.  It is entitled 'File Upload Error' and inside the box, it list the filename on the top line, "undefined", and "403" at the bottom.

I checked on the server and there are no error log entries are getting created for PHP or nginx.

I tried using IE (v11.0.9600.17959). The ticket gets created, but no file is attached.

Note that when i select the file to be attached, i see the progress bars flash on the screen, then disappear without showing the paperclip icon with filename.

I don't know where to look next.  Help!


  • nginx is not a webserver software that we officially support.
    There are numerous threads on github about things not working as expected.  I would recommend that you read through them as some of them contain nginx configuration changes that are required.
  • We made a change to the nginx configuration and it resolved the issue!
  • It would be great if you could post what the change was that you made in case anyone else running nginx stumbles upon this issue and thread.
  • Can't take credit for this - my extraordinary colleague did the work.  Here's his solution.

    osTicket was developed using
    Apache. There were Apache rewrite rules that needed to be converted for

    These are the rules in place
    that make the client and staff sides work.


           # Start Mods needed for OS Ticket.


           if ($request_uri ~ "^/api(/[^\?]+)") {

                 set $path_info $1;



           location ~ ^/api/(?:tickets|tasks).*$ {

              try_files $uri $uri/ /api/http.php?$query_string;



        if ($request_uri ~ "^/scp/.*\.php(/[^\?]+)") {

                set $path_info $1;



        location ~ ^/scp/ajax.php/.*$ {

              try_files $uri $uri/ /scp/ajax.php?$query_string;



          location ~ ^/ajax.php/.*$ {

              try_files $uri $uri/ /ajax.php?$query_string;


Sign In or Register to comment.