Probably you are just not calling getClientOriginalExtension() on request('file') (or whatever your file input name is equal to), but on a string instead, as it is mentioned into the posted error.
I'm pretty sure you are getting an array of files when your system expects to get a single file. This happened to me and my customers multiple times due to the crashed javascript file. This literally causes javascript to halt ajax uploads of files and passes multi-file array to the system.