deviceSetup failing to create customer under product specific ID

I am using latest android devicesetup and example app from github.

I am just trying to create a new customer account and claim a particle photon.

12-29 16:43:04.581 32610-32610/io.particle.devicesetup.exampleapp D/ViewRootImpl@97ba7f[CreateAccountActivity]: ViewPostImeInputStage processPointer 1
12-29 16:43:04.686 32610-2331/io.particle.devicesetup.exampleapp D/Retrofit: —> HTTP POST
12-29 16:43:04.686 32610-2331/io.particle.devicesetup.exampleapp D/Retrofit: Authorization: Basic <<>>12-29 16:43:04.686 32610-2331/io.particle.devicesetup.exampleapp D/Retrofit: Content-Type: application/json; charset=UTF-8
12-29 16:43:04.686 32610-2331/io.particle.devicesetup.exampleapp D/Retrofit: Content-Length: 229
12-29 16:43:04.687 32610-2331/io.particle.devicesetup.exampleapp D/Retrofit: {“account_info”:{“business_account”:false,“company_name”:"",“first_name”:“Test”,“last_name”:“User”},“email":",“grant_type”:“client_credentials”,“password”:“password”,“username”:""}
12-29 16:43:04.687 32610-2331/io.particle.devicesetup.exampleapp D/Retrofit: —> END HTTP (229-byte body)
12-29 16:43:04.696 32610-2331/io.particle.devicesetup.exampleapp D/NetworkSecurityConfig: No Network Security Config specified, using platform default
12-29 16:43:04.814 32610-2331/io.particle.devicesetup.exampleapp D/TcpOptimizer: TcpOptimizer-ON
12-29 16:43:05.568 32610-2331/io.particle.devicesetup.exampleapp D/Retrofit: <— HTTP 201 (880ms)
12-29 16:43:05.569 32610-2331/io.particle.devicesetup.exampleapp D/Retrofit: date: Fri, 29 Dec 2017 21:43:05 GMT
12-29 16:43:05.569 32610-2331/io.particle.devicesetup.exampleapp D/Retrofit: content-type: application/json; charset=utf-8
12-29 16:43:05.569 32610-2331/io.particle.devicesetup.exampleapp D/Retrofit: content-length: 161
12-29 16:43:05.569 32610-2331/io.particle.devicesetup.exampleapp D/Retrofit: server: nginx
12-29 16:43:05.569 32610-2331/io.particle.devicesetup.exampleapp D/Retrofit: x-request-id: 4f7b-49b4-ace1-
12-29 16:43:05.569 32610-2331/io.particle.devicesetup.exampleapp D/Retrofit: access-control-allow-origin: *
12-29 16:43:05.569 32610-2331/io.particle.devicesetup.exampleapp D/Retrofit: OkHttp-Sent-Millis: 1514583784957
12-29 16:43:05.569 32610-2331/io.particle.devicesetup.exampleapp D/Retrofit: OkHttp-Received-Millis: 1514583785566
12-29 16:43:05.571 32610-2331/io.particle.devicesetup.exampleapp D/Retrofit: {“token_type”:“bearer”,“access_token”:“REDACTED”,“expires_in”:7776000,“refresh_token”:“REDACTED”}
12-29 16:43:05.571 32610-2331/io.particle.devicesetup.exampleapp D/Retrofit: <— END HTTP (161-byte body)
12-29 16:43:05.580 32610-2331/io.particle.devicesetup.exampleapp D/ParticleAccessToken: Scheduling token expiration for Thu Mar 29 17:43:05 EDT 2018 (7776000000ms.
12-29 16:43:05.581 32610-32610/io.particle.devicesetup.exampleapp D/CreateAccountActivity: onAccountCreated()!
12-29 16:43:05.583 32610-32610/io.particle.devicesetup.exampleapp D/NextActivitySelector: Building setup complete activity…
12-29 16:43:05.583 32610-32610/io.particle.devicesetup.exampleapp D/NextActivitySelector: Returning setup complete activity

This appears to work because later the app continues and is seeing doing:

12-29 16:43:08.603 32610-2345/io.particle.devicesetup.exampleapp D/Retrofit: —> HTTP POST
12-29 16:43:08.603 32610-2345/io.particle.devicesetup.exampleapp D/Retrofit: Authorization: Bearer REDACTED
12-29 16:43:08.603 32610-2345/io.particle.devicesetup.exampleapp D/Retrofit: Content-Type: application/x-www-form-urlencoded; charset=UTF-8
12-29 16:43:08.603 32610-2345/io.particle.devicesetup.exampleapp D/Retrofit: Content-Length: 24
12-29 16:43:08.604 32610-2345/io.particle.devicesetup.exampleapp D/Retrofit: blank=okhttp_appeasement
12-29 16:43:08.604 32610-2345/io.particle.devicesetup.exampleapp D/Retrofit: —> END HTTP (24-byte body)
12-29 16:43:08.671 32610-2345/io.particle.devicesetup.exampleapp D/Retrofit: <— HTTP 200 (66ms)
12-29 16:43:08.671 32610-2345/io.particle.devicesetup.exampleapp D/Retrofit: date: Fri, 29 Dec 2017 21:43:08 GMT
12-29 16:43:08.671 32610-2345/io.particle.devicesetup.exampleapp D/Retrofit: content-type: application/json; charset=utf-8
12-29 16:43:08.671 32610-2345/io.particle.devicesetup.exampleapp D/Retrofit: content-length: 96
12-29 16:43:08.671 32610-2345/io.particle.devicesetup.exampleapp D/Retrofit: server: nginx
12-29 16:43:08.671 32610-2345/io.particle.devicesetup.exampleapp D/Retrofit: x-request-id: 48434a0a-b5e3
12-29 16:43:08.671 32610-2345/io.particle.devicesetup.exampleapp D/Retrofit: access-control-allow-origin: *
12-29 16:43:08.671 32610-2345/io.particle.devicesetup.exampleapp D/Retrofit: OkHttp-Sent-Millis: 1514583788606
12-29 16:43:08.671 32610-2345/io.particle.devicesetup.exampleapp D/Retrofit: OkHttp-Received-Millis: 1514583788670
12-29 16:43:08.672 32610-2345/io.particle.devicesetup.exampleapp D/Retrofit: {“claim_code”:“REDACTED”,“device_ids”:}
12-29 16:43:08.672 32610-2345/io.particle.devicesetup.exampleapp D/Retrofit: <— END HTTP (96-byte body)

I don’t get any new customers created under my device in the console!

Also, the app continues and succeeds in configuring WiFi for the photon, but later, it doesn’t get added into my product under devices either. So it seems to work, but I don’t see it actually created.

I believe the API isn’t working correctly especially with the new changes around moving away from using corp slugs:

I’ve got the following set in my customization.xml file:

<bool name="productMode">true</bool>
<integer name="product_id">XXXX</integer>
<string name="oauth_client_id">REDACTED</string>
<string name="oauth_client_secret">REDACTED</string>
<string name="network_name_prefix">REDACTED</string>

And the following now commented out as per latest changes to the org / product api:

<!-- {@deprecated Set productId number instead.}
<string name="product_slug">xxxxx</string>
{@deprecated Organization settings have been deprecated - set product name and ID only.}
<bool name="organization">false</bool>
{@deprecated Use productMode instead.}
<string name="organization_slug">CHANGE_ME</string>-->

One Last Problem, I’ve created a plethora now of “test user accounts” using various different valid email addresses owned by myself. Now, I am beginning to run out of “email accounts” and I need to delete some of those email addresses from the particle site. How can I delete those “test user accounts” which won’t be valid for anything. I’d like to delete them so I can continue to reuse them in testing the example app device setup / registration flow. Since the customers are not being added to my organization’s console, there’s no way for me to delete the accounts from particle’s website.


The device I was trying to claim was not running the correct firmware, so I could not register it under my product.
I discovered this when I logged into my new user manually using particle-cli and could not claim, with a product id of 6! which totally does not belong to me.

I also discovered that customers with no devices registered do not appear under the customers tab in the dashboard under the product. This comment seems to confirm it as well: