ImpCentral Release 2018-04-02 (UI v2.44.1 & API v3.42.1)

Features:

  • Environment variables now exist and are available from code. More info available on Dev Center.
  • Compiler warnings are now possible when creating a deployment. For example when using an older library version or a deprecated imp API method.
  • New authorization system behind the scenes, thus creating new accounts or changing password is now a little more strict with regards to password input.
  • New account information details during account creation process.
  • New Profile dialogs/ui for change email and change password (still accessible via top right account pulldown).
  • Code editor “Light” theme improvements and style updates.
  • New “Invitations and Roles” page available from top right nav account pulldown. This page shows other accounts where user is a collaborator and pending invitations from other accounts to collaborate. Managing both existing collaborations and pending invitations is now an option from this new view.
  • Side nav Collaborators page now also displays pending collaboration invitations sent from the account. These collaboration invitations to other accounts can also be revoked if desired.

Fixes:

  • Account name or email is no longer case sensitive when logging into BlinkUp apps (fixed API side for v5/auth).
  • Restart link now correctly selectable for production and factory devices in Manage column of devices list views and Device Details in Production Zone.
  • Clicking on ‘Code Draft’ icon in side nav from Test Blessed Devices view no longer incorrectly redirects to Development Device Group code.
  • Breadcrumbs no longer missing for Operations Manager or Support Role as a collaborator in other account’s Production Zone.
  • Changed the color of “Deploy” button on Test Blessed Devices view (was inconsistent and had low visibility).
  • Top nav status info pulldown now exists again (announcements, health check, maintenance windows).
  • Operations Manager is now able to create deployments in other account’s Production Zone (no longer returns an error).
  • Browser ‘Back’ button from test factory code editor no longer incorrectly redirects user to test blessed devices view (regardless of factory device counts).
  • Breadcrumbs and account toggle now correctly remain visible after leaving migration wizard through Devices pulldown in top nav.
  • “Assign Devices” button from code editor will now also work if having more than 100 non-production devices.
  • Moving devices directly between different groups from code editor will now accurately show those devices as moved without needing to refresh the view.

Hi Kev,

I’ve been seeing unexpected character after library specifier on all of my import statements since about 11:30 this morning, and I’m wondering if it might be related? I had no problems with the imports earlier this morning.

Uh oh, definitely sounds related, not good, sorry. Hmmmm… Can you please provide an example of your #require library lines which is causing issues?

To clarify, is the deployment still being created and we’re just talking about one of the new warning responses?

Do you have a semicolon at the end of the #require statement? If so please remove one, it may cause the issue.

I do not have a semicolon at the end, and it happens with any import. Here’s one that I just tried (copy and pasted from the editor)

#require "AES.lib.nut:1.0.0"

2018-04-02 15:02:49 -07:00 [IDE] Syntax error (line 1): unexpected character after library specifier

2018-04-02%2015_04_30-impCentral%20_%20Electric%20Imp

Edit: To address your question about this being a warning – It seems to be proceeding as if the import never happens, although it is a little hard to tell.

I have the same issue has Z-Node

That’s very strange, is it possible there’s an unexpected non-printable character at the end? Or maybe that closing quote is actually a stylized quote on accident? The line works fine for me as expected. Maybe try copy and pasting through a plain text doc first to strip anything which might be unintentionally associated?

Maybe the UI could be more helpful here somehow, hmmmm. If you have a chance, the api network response provides a bit more information. You’ll probably see the request listed in red, depending on your browser debugging tools. The request from UI is a POST to https://api.electricimp.com/v5/deployments. But an example response is below, where you can see the “meta” showing actual line and column position of error location (I forced this one with added semicolon at end).

{  
   "errors":[  
      {  
         "code":"CX005",
         "status":"400",
         "title":"Compilation Error",
         "detail":"There was an error with compilation.",
         "source":{  
            "pointer":"/data/attributes/agent_code"
         },
         "meta":[  
            {  
               "row":1,
               "column":29,
               "text":"unexpected character after library specifier",
               "type":"error",
               "file":"agent_code"
            }
         ]
      }
   ]
}

But yes, regardless, code which worked previously should still work now :frowning: Still investigating further here…

I had also suspected that maybe my quotes were funny so I had tried the copy/paste trick without success. Here’s the response on my end:

{'errors': [{'code': 'CX005',
   'detail': 'There was an error with compilation.',
   'meta': [{'column': 29,
     'file': 'device_code',
     'row': 1,
     'text': 'unexpected character after library specifier',
     'type': 'error'}],
   'source': {'pointer': '/data/attributes/device_code'},
   'status': '400',
   'title': 'Compilation Error'}]}

I tried a few different browsers – Chrome in Windows, Chrome in Linux, Firefox in Linux and had the same issue on all. I also typed the imports from scratch in a plaintext editor and then copied them into the web interface. Perhaps it is interpreting the newline character as an invalid character?

ok, we found it, this is related to windows line endings ("\r\n"). the new pre-compiler is more strict than previously. we will be hot-fixing soon to ignore the scenario for require lines.

i will update this thread again once verified fixed and promoted to production :+1:

sorry for the inconvenience and thank you for the bug report!!

Ok, sorry for that bug and slow resolution. The fix is now deployed and live :smile:

Your issue should be resolved. Please let us know if there is still something wrong with your scenario.

Cheers,
Kevin

Looks like that fixed it, thanks for the help!

1 Like