The following code runs fine if I run it interactively:

Clear@realpath;


In particular, the variable test gets the expected (non-Null) value.

The same code runs fine also if I put it in a standalone script and execute it with

<< "/path/to/script.m";


But if I put the same code, all by itself, in my Kernel/init.m file, it fails: the variable test gets the incorrect value Null. (The variable testsymlink, on the other hand, is still correctly set.)

Furthermore, if I then evaluate

realpath[testsymlink]


interactively (in the newly started Mathematica session), I get the error shown in this post's title, twice:

I can't figure out why I'm getting this error, but I'm having it may give someone else a clue as to why the snippet is failing in the first place (when run as part of executing Kernel/init.m.

PS: It appears that the offending snippet puts the session in a corrupted state, because when I attempted to upload the image shown above, I got this error:

I had first restart Mathematica (after deleting the offending snippet from Kernel/init.m), before I could upload these images.

-
I looked a bit under the hood by removing Attribute ReadProtected from Import. Interesting, but it didnt help. – Jacob Akkerboom Jul 25 '13 at 9:11
@kjo I'm passing through an akin pickle mathematica.stackexchange.com/questions/114041/…. Did you find any explanation ? – mitochondrial May 1 at 4:29
@mitochondrial: no, I never did, unfortunately. – kjo May 1 at 11:56
@mitochondrial: I just had a random (and, admittedly, very farfetched) thought: MATLAB files also end in *.m, and therefore in some systems, MATLAB is set as the default program for such files. Could there be a weird interaction between Mathematica and the desktop environment that leads Mathematica to conclude that a particular *.m` file is not a "MathLink executable"? Grasping at straws here... I'd test this idea myself, but I no longer have access to the system where I got this error. – kjo May 1 at 12:03