Troubleshooting

Page Not Found and Handler Names

Make sure to put all your handler names in your controller as a comma separated list into the global variable gControllerHandlers, otherwise you get a "Page Not Found" error.
See the comments in the sample files in the application/controllers folder.

Error Logging

If you enable error logging in application/config/config.lc make sure that the application/logs folder is writable.

Loading Controllers via the Command-Line Interface and Logging

The owner of files created while running revIgniter as a web application may be different than the one when loading controllers via the command-line interface. This means that a log file created by a web app cannot be written to by running controllers from CLI and vice versa. So, in case logging is enabled, make sure that the current log file can be written to by controllers loaded via CLI.

Search-Engine Friendly URLs

If you find that no matter what you put in your URL only your default page is loading, it might be that your server does not support the PATH_INFO variable needed to serve search-engine friendly URLs. This does not apply to the LiveCode hosting service.
As a first step, open your application/config/config.lc file and look for the URI Protocol information. It will recommend that you try a couple alternate settings. If it still doesn't work you may try to use query string based URLs by setting gConfig["enableQueryStrings"] in the config.lc file to TRUE.

Setting Headers and Cookies

If you have problems setting headers or cookies watch out for whitespace. Make sure that there is no whitespace before the <?lc tag of your script files and that no whitespace follows the terminating "?>" tag because anything outside the opening and closing tags will be sent before the actual content (generated by your script), including the default headers sent by the engine. This means setting custom headers by script has no effect because headers can be sent only once. Generally it is better to leave terminating "?>" tags off, this way whitespace at the end of the script does not accidentally output content to the browser. Furthermore make sure that your files are not saved using UTF-8 (BOM). Using BOM prevents changing any header because characters are sent prior to sending headers, this means headers you set or cookies can not be sent.

Cross Site Request Forgery Protection (CSRF)

In case CSRF Protection yields error "The action you have requested is not allowed.", either set the master time reference in application/config/config.lc to “gmt” or increase the value of gConfig["csrf_expire”] (the number in seconds the CSRF token should expire), also found in config.lc.

Code in View Files

Keep in mind, that using return statements enclosed in "<?" and "?>" is the only way to include LiveCode in your view files like in the following example:

<? put "<ul>" into tToDo
repeat for each item thisItem in gData["toDoList"]
  put "<li>" & thisItem & "</li>" after tToDo
end repeat
put "</ul>" after tToDo
return tToDo ?>

Email Library

As of server version 7.0.6-rc-1 the SMTP protocol is not available on Linux because the commands open socket with message and write to socket are still not working in the Linux server engine. On Mac OS X SMTP should work as expected since server version 7.0.1.
Update: Sockets work in Linux server engine since version 7.1.0 RC 1 too. This means you can use the SMTP protocol on Linux.
Update: This issue reappeared with LC server version 8.0.0 and applies to all socket callback messages. So, sending emails using SMTP is broken again.

See LC server bug (14607)

Trackback Library

As of server version 7.0.6-rc-1 the Trackback library does not work on Linux because the write to socket command is still not working in the Linux server engine. On Mac OS X Trackback should work as expected since server version 7.0.1.
Update: Sockets work in Linux server engine since version 7.1.0 RC 1 too. This means you can use the Trackback library on Linux.

See LC server bug (15514)

FTP Library

Asynchronous requests are currently (up to LC server version 9.6.2) not working, presumably this is due to a bug in tsNet, see bug 18961.

Output Compression

Gzip output compression does not work with 32bit Linux LC server versions 9.0.5 and 9.5.0. So, if you set gConfig["compress_output"] in config.lc to TRUE you need to use either a 64bit server or the 32bit flavor of version 9.0.4.

See LC server bug (22098)