You get a shell on a linux box, you attempt to upgrade the shell to meterpreter using the command "sessions -u", and then you receive the following error:

"Shells on the target platform, linux, cannot be upgraded to meterpreter at this time."

I received this error over and over again while attempting to upgrade my shells after popping the box with a simple perl one liner.  Turns out the problem isn't with the box but with the perl reverse shell.  Honestly, I haven't looked into it any further than that because my goal is forward motion and not to get bogged down with the WHY part.

I don't remember how I figured this out but when I realized it was the perl shell, I started catching the perl shell with netcat, and then I'd toss a PHP shell from the box to metasploit.  Then when you run sessions -u and you get a meterpreter session is spawned.