0 Favourites

Construct 2 check failure r246

  • Problem Description

    Error occurs at the start of C2.

    ---------------------------
    Construct 2 Check failure
    ---------------------------
    Check failure!  This is probably a bug:
    
    ACE table: expression does not specify one return flag - did you specify more than one, or forget it entirely?
    
    Condition: return_flags == 1
    File: c:\c2\source\exporters\html5\..\..\common\ERAHelpers.h
    Line: 285
    Function: void __cdecl era::ACETable::AddExpression(int,int,const class std::basic_string<wchar_t,struct std::char_traits<wchar_t>,class std::allocator<wchar_t> > &,const class std::basic_string<wchar_t,struct std::char_traits<wchar_t>,class std::allocator<wchar_t> > &,const class std::basic_string<wchar_t,struct std::char_traits<wchar_t>,class std::allocator<wchar_t> > &,const class std::basic_string<wchar_t,struct std::char_traits<wchar_t>,class std::allocator<wchar_t> > &,void (__cdecl *)(const class era::StaticResult **,int,class era::StaticEvaluation *))
    Build: release 246 (64-bit) checked
    Component: HTML5 exporter
    (Last Win32 error: 0)
    
    You are using a 'checked' release of Construct 2, intended for testing, which causes certain errors to be reported this way.  Hit Ctrl+C to copy this messagebox - it's useful information for the developers, so please include it with any bug reports!  Click 'Abort' to quit (unsaved data will be lost!),'Retry' to turn off messages for this session and continue, or 'Ignore' to continue normally.
    ---------------------------
    Abort   Retry   Ignore   
    ---------------------------
    [/code:1vwtn2am]
        
    [b]Attach a Capx[/b]
    not related
        
    [b]Description of Capx[/b]
    not related
    
    [b]Steps to Reproduce Bug[/b]
    [ul]
        [li] run C2 after updating from r245[/li][/ul]
        
    [b]Observed Result[/b]
    Error occurs.
        
    [b]Expected Result[/b]
    No errors.
        
    [b]Affected Browsers[/b]
    not related
        
    [b]Operating System and Service Pack[/b]
    Win10
        
    [b]Construct 2 Version ID[/b]
    r246
    
    [b]Additional info[/b]
    [ul]
    	[li]Everything with the exact same plugin set worked well for 245.[/li]
    	[li]Such issue was already in the past like 10 releases ago (can't remember the exact number). The next release fixed it.[/li]
    	[li]C2 starts when I hit "Retry".[/li]
    [/ul]
  • This doesn't happen for me with a fresh install, and this type of error is almost always caused by third party addons. I'd double check what you have installed. I'm not sure why it wouldn't reproduce in r245 though...

  • Figured out that one of third party plugins had "ef_deprecated" without any return type declared and this was causing the issue.

    I already contacted the author of the plugin so he will make a fix for others soon I'm sure.

    It's good that C2 rised this error, but not good that previous C2 versions didn't so I think it's something you may want to check Ashley

  • None of the related code changed between r245 and r256. They make exactly the same plugin checks. I've no idea why one would report an error but not the other.

  • Alright so now it triggers for me even when I try to add any object (double click on the layout canvas) to an empty project. I guess that's the time it grabs some details from edittime.js's Ashley?

    I searched through files for "deprecated" word and I see quite a lot of plugins using deprecated flag alone like some of rexrainbow plugins

    BUT it's not only third-party plugins, official plugins have it as well e.g.

    I am now very confused. I agree that the error message should pop up because there is an issue (deprecated flag should not be alone).

    1. Why previous versions did not complain?

    2. Why there's so few people seeing this issue (I know only one more person who has the same error message)

  • It's almost certainly to do with your particular third party plugins. That is why nobody else is reporting it, and plugin developers very frequently make this type of mistake. I guess failing to report the errors is a separate issue.

    There's nothing wrong with cf_deprecated or af_deprecated on their own, but ef_deprecated is invalid on its own because C2 still needs to know the return type of the expression since it can still be used by existing projects! So it must be combined with one of the return type flags, but plugin developers frequently replace the flag and make that mistake.

    Similarly a plugin can't say it is a "world" type if it specifies pf_singleglobal, probably just another addon developer mistake.

  • I went through all the plugins and there is none in my setup with ef_deprecated alone any more. Still I see the error and the only suspicious thing I see is cf_deprecated as I mentioned above.

    I understand that af_deprecated on its own is acceptable as actions do not have various flags. But could you explain why cf_deprecated alone is valid?

    If the condition was a cf_trigger once and then it got changed to cf_deprecated, then I guess the engine doesn't really know how to treat it - cf_none or cf_trigger? One will run the condition everytick (if true) other just when triggered so this is a huge difference that may break old project using deprecated conditions.

  • Good.

    To my also giving problems the R246 to this me.

    A greeting.

  • mallorcaredes if you have the AirConsole plugin installed then please update to the newest version, I talked to the author and he already made a fix.

  • It's almost certainly to do with your particular third party plugins. That is why nobody else is reporting it.........

    I had a hard time figuring out which plugins caused that error.

    One by One, Try and Error, and i had 4 of them causing the problem.

    C2 does not give any indication about what plugin is the problem.

    They had in common that they are old (probably forgotten), also they all are 'faceless'.

    Of course it is not happening with a fresh install. Do you really want me to find & download & install all 3th party plugins again ?

    On the good side, none of Rexrainbow plugins are a problem, none of BackendFreak's plugins have a problem. And is why i did not report it, it was a good thing after all, cleaning my plugin mess.

  • Just to clarify... I confirm that rexrainbow plugins DO NOT cause this error. It was the AirConsole plugin and author fixed it already.

    I just pasted examples of official and Rex plugin using "cf_deprecated" flag alone as IMO it is an issue. Not like a crucial one but still "cf_deprecated" alone will behave differently than combined with "cf_trigger" which may cause unexpected behavior (issues with backward compatibility). So I just pinged Rex, as I believe he'd like to fix it in his plugins (I would).

  • Update AirConsole and now this another mistake goes out for me now.

    When I try to export in format Cordova, he says the following thing to me.

  • Well, i had to kill 4 plugins. You might have another one with a problem.

    Maybe? Move all your plugins somewhere else. Keep only AirConsole. Start up c2.

    Now you are sure if it is (only) AirConsole or not.

  • His issue is "Action ID duplicated" which as far as I understand means that some plugin has the same ID for the action in edittime.js twice. It's not AirConsole for sure.

    Each action must have a unique ID so this is quite crucial bug that developer missed because previous versions of C2 were not rising those error notifications.

    mallorcaredes what you have to do is to remove plugin by plugin and each time restart C2 in order to reload edittime.js. Once the error message is gone than it means that the latest removed plugin was causing the error.

    The other way would be to read each plugin's edittime.js but that requires you to understand the plugin's structure.

  • Construct 3

    Buy Construct 3

    Develop games in your browser. Powerful, performant & highly capable.

    Buy Now Construct 3 users don't see these ads
  • BackendFreak

    I uses r246 but I did not see any error message when C2 started with all my C2 plugins.

    As I know, stable version will not show error message of duplicated expression ID, but beta version will. It worked fine with duplicated expression ID, maybe expression ID was not be referenced in C2 editor.

    And yes, I agree that that kind of error message should include plugin name for debugging. Ashley

Jump to:
Active Users
There are 1 visitors browsing this topic (0 users and 1 guests)