On Thu, Sep 24, 2015 at 4:14 PM, Gabor Szabo <gabor@szabgab.com> wrote:
While trying to deploy an application I've just encountered this error:

error @2015-09-24 09:06:31> Route exception: Undef did not pass type constraint "Str" (in $args->{"name"}) at (eval 663) line 192
    "Str" is a subtype of "Value"
    "Value" is a subtype of "Defined"
    Undef did not pass type constraint "Defined" (in $args->{"name"})
    "Defined" is defined as: (defined($_)) in /home/user/perl5.22.0/lib/site_perl/5.22.0/Dancer2/Core/App.pm l. 1276

I don't see this on my development machine and so far I have no idea where to look.

Before I go down the rabbit hole trying to find the differences and the source of the problem,
I wonder if anyone has encountered this.

Dancer2 0.162   on both machines:
dev using plackup 1.0037
prod using Starman 0.4014

Dancer2::Plugin::Auth::Extensible 0.401

regards
   Gabor


I tried using plack on the server and it work properly.
It also seems to work well when I run

plackup -s Starman -p 3000

So it seems this is something related to how I run Starman which is by way of this script launched
from /etc/rc.local


#!/home/user/perl5.22.0/bin/perl
use warnings;
use strict;
use Daemon::Control;

use File::Basename qw(dirname);
use Cwd qw(abs_path);

Daemon::Control->new(
        {
                name      => 'Starman',
                lsb_start => '$syslog $remote_fs',
                lsb_stop  => '$syslog',
                lsb_sdesc => 'Starman Short',
                lsb_desc  => 'Starman controls the web sites.',
                path      => abs_path($0),

                program => dirname($^X) . '/starman',

                program_args => [ '--workers', '5', '--port', '3000', '/home/user/work/app/app.psgi' ],

                pid_file    => '/tmp/starman.pid',
                stderr_file => '/tmp/starman.err',
                stdout_file => '/tmp/starman.out',

                fork => 2,

        }
)->run;


Oh and I am using perl 5.22.


Gabor