# Problem with Mender server production!

**URL:** <https://hub.mender.io/t/problem-with-mender-server-production/2925>\
**Category:** General Discussions\
**Tags:** raspberry-pi-4\
**Created:** [December 2, 2020, 6:35am UTC](https://hub.mender.io/t/problem-with-mender-server-production/2925 "2020-12-02T06:35:01Z")\
**Posts on this page:** 17\
**Page:** 1

<div class="post-metadata">

**Author:** ![Kennen](https://avatars.discourse-cdn.com/v4/letter/k/7993a0/32.png) [@Kennen](https://hub.mender.io/u/Kennen)\
**Post date:** [December 2, 2020, 6:35am UTC](https://hub.mender.io/t/problem-with-mender-server-production/2925/1 "2020-12-02T06:35:02Z")

</div>

Hi Mender Team,  
I’m newbie in Mender and I think I need some help from your guys.  
I have set up a mender server production by following the docs [Production installation](https://docs.mender.io/2.5/server-installation/production-installation) and I want to connect my RPI4 to mender server for deploy purpose. In docs have mention that I need to be made certificates available to Mender Client by include the certificates in the client builds . I check for [Build for production](https://docs.mender.io/2.5/system-updates-yocto-project/build-for-production#preparing-the-client-certificates) and it said include certificates by using layer. I don’t have layer so i create it following this [create your own layer](https://www.yoctoproject.org/docs/latest/mega-manual/mega-manual.html#creating-your-own-layer) and after that I don’t know what I supposed to do next. It really confused when reading the Yocto Docs? How can I build my mender server production with included certificates in mender client which is my RPI4? Sorry, my english is not good. Hope your guys can understand and help me figure out what I have done wrong.  
Thanks

---

<div class="post-metadata">

**Author:** ![Kennen](https://avatars.discourse-cdn.com/v4/letter/k/7993a0/32.png) [@Kennen](https://hub.mender.io/u/Kennen)\
**Post date:** [December 2, 2020, 11:10am UTC](https://hub.mender.io/t/problem-with-mender-server-production/2925/2 "2020-12-02T11:10:11Z")

</div>

Update  
I now can connect my RPI4 to MenderServer by include **server.crt** in mender.conf file by hand. Also I have to create **artifact\_info** file by hand to let the server recognize the RPI4.

![image](https://canada1.discourse-cdn.com/flex036/uploads/mender/original/1X/384574dd1a7967ac8a461c38311bb37ad70aa8af.png)

Here is the status of command **systemctl status mender-client.service**

Dec 02 18:02:56 raspberrypi mender[520]: time=“2020-12-02T18:02:56+07:00” level=warning msg=“Inventory tool /usr/share/mender/inventory/mender-inventory-geo wait failed: exit status 3”  
Dec 02 18:02:56 raspberrypi mender[520]: time=“2020-12-02T18:02:56+07:00” level=info msg=“State transition: inventory-update [Sync] -\> check-wait [Idle]”  
Dec 02 18:02:56 raspberrypi mender[520]: time=“2020-12-02T18:02:56+07:00” level=info msg=“State transition: check-wait [Idle] -\> update-check [Sync]”  
Dec 02 18:02:58 raspberrypi mender[520]: time=“2020-12-02T18:02:58+07:00” level=info msg=“State transition: update-check [Sync] -\> check-wait [Idle]”  
Dec 02 18:02:59 raspberrypi mender[520]: time=“2020-12-02T18:02:59+07:00” level=info msg=“State transition: check-wait [Idle] -\> inventory-update [Sync]”  
Dec 02 18:03:01 raspberrypi mender[520]: time=“2020-12-02T18:03:01+07:00” level=warning msg=“Inventory tool /usr/share/mender/inventory/mender-inventory-geo wait failed: exit status 3”  
Dec 02 18:03:01 raspberrypi mender[520]: time=“2020-12-02T18:03:01+07:00” level=warning msg=“Inventory tool /usr/share/mender/inventory/mender-inventory-geo wait failed: exit status 3”  
Dec 02 18:03:01 raspberrypi mender[520]: time=“2020-12-02T18:03:01+07:00” level=info msg=“State transition: inventory-update [Sync] -\> check-wait [Idle]”  
Dec 02 18:03:01 raspberrypi mender[520]: time=“2020-12-02T18:03:01+07:00” level=info msg=“State transition: check-wait [Idle] -\> update-check [Sync]”  
Dec 02 18:03:02 raspberrypi mender[520]: time=“2020-12-02T18:03:02+07:00” level=info msg=“State transition: update-check [Sync] -\> check-wait [Idle]”

Here is the output of command **journactl -u mender-client.service**

Dec 02 01:17:24 raspberrypi systemd[1]: Started Mender OTA update service.  
Dec 02 01:17:25 raspberrypi mender[520]: time=“2020-12-02T01:17:25+07:00” level=info msg=“Loaded configuration file: /var/lib/mender/mender.conf”  
Dec 02 01:17:25 raspberrypi mender[520]: time=“2020-12-02T01:17:25+07:00” level=info msg=“Loaded configuration file: /etc/mender/mender.conf”  
Dec 02 01:17:25 raspberrypi mender[520]: time=“2020-12-02T01:17:25+07:00” level=info msg=“Mender running on partition: /dev/mmcblk0p2”  
Dec 02 01:17:25 raspberrypi mender[520]: time=“2020-12-02T01:17:25+07:00” level=info msg=“State transition: init [none] -\> init [none]”  
Dec 02 01:17:25 raspberrypi mender[520]: time=“2020-12-02T01:17:25+07:00” level=info msg=“State transition: init [none] -\> idle [Idle]”  
Dec 02 01:17:25 raspberrypi mender[520]: time=“2020-12-02T01:17:25+07:00” level=info msg=“authorization data present and valid”  
Dec 02 01:17:25 raspberrypi mender[520]: time=“2020-12-02T01:17:25+07:00” level=info msg=“State transition: idle [Idle] -\> check-wait [Idle]”  
Dec 02 01:17:25 raspberrypi mender[520]: time=“2020-12-02T01:17:25+07:00” level=info msg=“State transition: check-wait [Idle] -\> inventory-update [Sync]”  
Dec 02 01:17:37 raspberrypi mender[520]: time=“2020-12-02T01:17:37+07:00” level=warning msg=“Inventory tool /usr/share/mender/inventory/mender-inventory-geo wait failed: exit status 3”  
Dec 02 01:17:37 raspberrypi mender[520]: time=“2020-12-02T01:17:37+07:00” level=warning msg=“Inventory tool /usr/share/mender/inventory/mender-inventory-geo wait failed: exit status 3”  
Dec 02 17:47:32 raspberrypi mender[520]: time=“2020-12-02T17:47:32+07:00” level=error msg=“Failed to submit inventory data: Patch [https://myserver.com/api/devices/v1/inventory/device/attributes:](https://myserver.com/api/devices/v1/inventory/device/attributes:) dial tcp 192.168.0.127:443: connect: no route to host”  
Dec 02 17:47:32 raspberrypi mender[520]: time=“2020-12-02T17:47:32+07:00” level=warning msg="Failed to refresh inventory: failed to submit inventory data: inventory submit failed: Patch [https://myserver.com/api/devices/v1/inventory/device/attributes:](https://myserver.com/api/devices/v1/inventory/device/attributes:) dial  
Dec 02 17:47:32 raspberrypi mender[520]: time=“2020-12-02T17:47:32+07:00” level=error msg=“Failed to submit inventory data: Patch [https://myserver.com/api/devices/v1/inventory/device/attributes:](https://myserver.com/api/devices/v1/inventory/device/attributes:) dial tcp 192.168.0.127:443: connect: no route to host”  
Dec 02 17:47:32 raspberrypi mender[520]: time=“2020-12-02T17:47:32+07:00” level=warning msg="Failed to refresh inventory: failed to submit inventory data: inventory submit failed: Patch [https://myserver.com/api/devices/v1/inventory/device/attributes:](https://myserver.com/api/devices/v1/inventory/device/attributes:) dial  
Dec 02 17:47:32 raspberrypi mender[520]: time=“2020-12-02T17:47:32+07:00” level=info msg=“State transition: inventory-update [Sync] -\> check-wait [Idle]”  
Dec 02 17:47:32 raspberrypi mender[520]: time=“2020-12-02T17:47:32+07:00” level=info msg=“State transition: check-wait [Idle] -\> update-check [Sync]”  
Dec 02 17:47:35 raspberrypi mender[520]: time=“2020-12-02T17:47:35+07:00” level=error msg="Error receiving scheduled update data: POST update check request failed: Post [https://myserver.com/api/devices/v1/deployments/device/deployments/next:](https://myserver.com/api/devices/v1/deployments/device/deployments/next:) dial tcp 192.1  
Dec 02 17:47:35 raspberrypi mender[520]: time=“2020-12-02T17:47:35+07:00” level=error msg="Error receiving scheduled update data: POST update check request failed: Post [https://myserver.com/api/devices/v1/deployments/device/deployments/next:](https://myserver.com/api/devices/v1/deployments/device/deployments/next:) dial tcp 192.1  
Dec 02 17:47:36 raspberrypi mender[520]: time=“2020-12-02T17:47:36+07:00” level=error msg="Update check failed: transient error: POST update check request failed: Post [https://myserver.com/api/devices/v1/deployments/device/deployments/next:](https://myserver.com/api/devices/v1/deployments/device/deployments/next:) dial tcp 192.16  
Dec 02 17:47:36 raspberrypi mender[520]: time=“2020-12-02T17:47:36+07:00” level=error msg="Update check failed: transient error: POST update check request failed: Post [https://myserver.com/api/devices/v1/deployments/device/deployments/next:](https://myserver.com/api/devices/v1/deployments/device/deployments/next:) dial tcp 192.16  
Dec 02 17:47:36 raspberrypi mender[520]: time=“2020-12-02T17:47:36+07:00” level=info msg=“State transition: update-check [Sync] -\> error [Error]”  
Dec 02 17:47:36 raspberrypi mender[520]: time=“2020-12-02T17:47:36+07:00” level=info msg="Handling error state, current error: transient error: POST update check request failed: Post [https://myserver.com/api/devices/v1/deployments/device/deployments/next:](https://myserver.com/api/devices/v1/deployments/device/deployments/next:)  
Dec 02 17:47:36 raspberrypi mender[520]: time=“2020-12-02T17:47:36+07:00” level=info msg=“State transition: error [Error] -\> idle [Idle]”  
Dec 02 17:47:36 raspberrypi mender[520]: time=“2020-12-02T17:47:36+07:00” level=info msg=“authorization data present and valid”  
Dec 02 17:47:36 raspberrypi mender[520]: time=“2020-12-02T17:47:36+07:00” level=info msg=“State transition: idle [Idle] -\> check-wait [Idle]”  
Dec 02 17:47:36 raspberrypi mender[520]: time=“2020-12-02T17:47:36+07:00” level=info msg=“State transition: check-wait [Idle] -\> inventory-update [Sync]”  
Dec 02 17:47:48 raspberrypi mender[520]: time=“2020-12-02T17:47:48+07:00” level=warning msg=“Inventory tool /usr/share/mender/inventory/mender-inventory-geo wait failed: exit status 3”  
Dec 02 17:47:48 raspberrypi mender[520]: time=“2020-12-02T17:47:48+07:00” level=warning msg=“Inventory tool /usr/share/mender/inventory/mender-inventory-geo wait failed: exit status 3”

I try to upload file image with **.mender** extension but when is done it named my image is **system1-v1** instead of my original image name?

 ![image](https://canada1.discourse-cdn.com/flex036/uploads/mender/original/1X/e083705f97d9d88d8b277c81f28a4533f49312e4.png)  
Hope your guys help me solve this problem  
Best regards.

---

<div class="post-metadata">

**Author:** ![drewmoseley](https://yyz2.discourse-cdn.com/flex036/user_avatar/hub.mender.io/drewmoseley/32/47_2.png) [@drewmoseley](https://hub.mender.io/u/drewmoseley)\
**Post date:** [December 2, 2020, 2:50pm UTC](https://hub.mender.io/t/problem-with-mender-server-production/2925/3 "2020-12-02T14:50:13Z")

</div>

It seems your RpI is not able to contact the server for some reason.:

> Dec 02 17:47:32 raspberrypi mender[520]: time=“2020-12-02T17:47:32+07:00” level=error msg=“Failed to submit inventory data: Patch [https://myserver.com/api/devices/v1/inventory/device/attributes:](https://myserver.com/api/devices/v1/inventory/device/attributes:) dial tcp 192.168.0.127:443: connect: no route to host”

I don’t know why the artifact\_info file would not be created automatically if you are using meta-mender with your Yocto build. Do you have all the Mender config variables setup?

Also, it looks like you are trying to use the example `server.crt` rather than the one you created with your production setup.

Drew

---

<div class="post-metadata">

**Author:** ![Kennen](https://avatars.discourse-cdn.com/v4/letter/k/7993a0/32.png) [@Kennen](https://hub.mender.io/u/Kennen)\
**Post date:** [December 2, 2020, 4:26pm UTC](https://hub.mender.io/t/problem-with-mender-server-production/2925/4 "2020-12-02T16:26:49Z")

</div>

Thanks for reply  
Actually I just use Yocto to create a layer instead. I don’t build anything with Yocto. Artifact\_info was create by hand. Same with server.crt, I have to change the path in mender.conf by hand, the original the path is demo.crt and you mention Mender config varialbes setup, can you give me some example of that please I think I don’t really understand you. Sorry, my english is not good.

---

<div class="post-metadata">

**Author:** ![Kennen](https://avatars.discourse-cdn.com/v4/letter/k/7993a0/32.png) [@Kennen](https://hub.mender.io/u/Kennen)\
**Post date:** [December 2, 2020, 5:29pm UTC](https://hub.mender.io/t/problem-with-mender-server-production/2925/5 "2020-12-02T17:29:12Z")

</div>

Update  
When I command mender-inventory-geo can’t run efficient  
Does this relate to Error Failed to submit inventory data you have included?

---

<div class="post-metadata">

**Author:** ![drewmoseley](https://yyz2.discourse-cdn.com/flex036/user_avatar/hub.mender.io/drewmoseley/32/47_2.png) [@drewmoseley](https://hub.mender.io/u/drewmoseley)\
**Post date:** [December 2, 2020, 7:45pm UTC](https://hub.mender.io/t/problem-with-mender-server-production/2925/6 "2020-12-02T19:45:07Z")

</div>

What target distro are you running? You only need to use the Yocto layer if you are doing Yocto builds.

No, the mender-inventory-geo stuff should not affect what you are seeing here.

---

<div class="post-metadata">

**Author:** ![Kennen](https://avatars.discourse-cdn.com/v4/letter/k/7993a0/32.png) [@Kennen](https://hub.mender.io/u/Kennen)\
**Post date:** [December 3, 2020, 6:30am UTC](https://hub.mender.io/t/problem-with-mender-server-production/2925/7 "2020-12-03T06:30:42Z")

</div>

Hi again

> _What target distro are you running?_

I’m using Centos 7 Minimal 2003 on my workstation and my RPI4 is using Raspbian

> _You only need to use the Yocto layer if you are doing Yocto builds._

No, I don’t mean to use Yocto, I use Yocto layer because at the end of Task Certificates and Keys of [Procution installation](https://docs.mender.io/2.5/server-installation/production-installation) is said is needed to include Certificates in client build by add it in layers  
My goal is setup a Mender Server by following docs Production installation, connect RPI4 to it ( with server.crt inlcude in mender.conf so i don’t need to change it by hand ) and starting deploy my stuff using my mender server.

> _No, the mender-inventory-geo stuff should not affect what you are seeing here._

After I move the mender-inventory-geo to another directory the error above is gone when I command **systemctl statsus mender-client.service**

> ● mender-client.service - Mender OTA update service  
> Loaded: loaded (/lib/systemd/system/mender-client.service; enabled; vendor preset: enabled)  
> Active: active (running) since Thu 2020-12-03 13:10:26 +07; 19min ago  
> Main PID: 5832 (mender)  
> Tasks: 14 (limit: 4915)  
> Memory: 10.6M  
> CGroup: /system.slice/mender-client.service  
> └─5832 /usr/bin/mender -daemon
> 
> Dec 03 13:29:18 raspberrypi mender[5832]: time=“2020-12-03T13:29:18+07:00” level=info msg=“State transition: check-wait [Idle] → update-check [Sync]”  
> Dec 03 13:29:18 raspberrypi mender[5832]: time=“2020-12-03T13:29:18+07:00” level=info msg=“State transition: update-check [Sync] → check-wait [Idle]”  
> Dec 03 13:29:22 raspberrypi mender[5832]: time=“2020-12-03T13:29:22+07:00” level=info msg=“State transition: check-wait [Idle] → inventory-update [Sync]”  
> Dec 03 13:29:22 raspberrypi mender[5832]: time=“2020-12-03T13:29:22+07:00” level=info msg=“State transition: inventory-update [Sync] → check-wait [Idle]”  
> Dec 03 13:29:23 raspberrypi mender[5832]: time=“2020-12-03T13:29:23+07:00” level=info msg=“State transition: check-wait [Idle] → update-check [Sync]”  
> Dec 03 13:29:23 raspberrypi mender[5832]: time=“2020-12-03T13:29:23+07:00” level=info msg=“State transition: update-check [Sync] → check-wait [Idle]”  
> Dec 03 13:29:27 raspberrypi mender[5832]: time=“2020-12-03T13:29:27+07:00” level=info msg=“State transition: check-wait [Idle] → inventory-update [Sync]”  
> Dec 03 13:29:27 raspberrypi mender[5832]: time=“2020-12-03T13:29:27+07:00” level=info msg=“State transition: inventory-update [Sync] → check-wait [Idle]”  
> Dec 03 13:29:28 raspberrypi mender[5832]: time=“2020-12-03T13:29:28+07:00” level=info msg=“State transition: check-wait [Idle] → update-check [Sync]”  
> Dec 03 13:29:29 raspberrypi mender[5832]: time=“2020-12-03T13:29:29+07:00” level=info msg=“State transition: update-check [Sync] → check-wait [Idle]”

---

<div class="post-metadata">

**Author:** ![Kennen](https://avatars.discourse-cdn.com/v4/letter/k/7993a0/32.png) [@Kennen](https://hub.mender.io/u/Kennen)\
**Post date:** [December 3, 2020, 8:43am UTC](https://hub.mender.io/t/problem-with-mender-server-production/2925/8 "2020-12-03T08:43:38Z")

</div>

It me again.  
I have found something weird that the time on my workstation is different. Here is when I command timedatect

> Local time: Thu 2020-12-03 02:04:57 UTC  
> Universal time: Thu 2020-12-03 02:04:57 UTC  
> RTC time: Thu 2020-12-03 03:36:02  
> Time zone: UTC (UTC, +0000)  
> NTP enabled: n/a  
> NTP synchronized: no  
> RTC in local TZ: no  
> DST active: n/a

After that about 30sec I create I deploy on server

 ![image](https://canada1.discourse-cdn.com/flex036/uploads/mender/original/1X/0e72916d1d8f64d77020c82e5a07402f503717ce.png)  
the time is different  
here is output when command timedatectl on RPI4

> Local time: Thu 2020-12-03 15:41:41 +07  
> Universal time: Thu 2020-12-03 08:41:41 UTC  
> RTC time: n/a  
> Time zone: Asia/Bangkok (+07, +0700)  
> System clock synchronized: yes  
> NTP service: inactive  
> RTC in local TZ: no

Does this related to my problem?

---

<div class="post-metadata">

**Author:** ![Kennen](https://avatars.discourse-cdn.com/v4/letter/k/7993a0/32.png) [@Kennen](https://hub.mender.io/u/Kennen)\
**Post date:** [December 3, 2020, 11:11am UTC](https://hub.mender.io/t/problem-with-mender-server-production/2925/9 "2020-12-03T11:11:26Z")

</div>

Update  
I have made some change to the time on both workstation and RPI4 and start deploy Fresh OS Raspbian again, it stuck at 99% so I reboot RPI by hand and guess what, it work, at least for 30sec maybe. I know it work because I have to login back to my device ( RPI4 ) and it password has been change to Fresh OS Raspbian password but after that it rollback and State Deployment on Mender UI change to fail.  
Here is the log of deployment, hope it useful!

> 2020-12-03 09:56:34 +0000 UTC info: Running Mender client version: 2.4.0  
> 2020-12-03 09:56:35 +0000 UTC info: State transition: update-fetch [Download\_Enter] → update-store [Download\_Enter]  
> 2020-12-03 09:56:35 +0000 UTC info: No public key was provided for authenticating the artifact  
> 2020-12-03 09:56:35 +0000 UTC info: Opening device “/dev/mmcblk0p3” for writing  
> 2020-12-03 09:56:35 +0000 UTC info: Native sector size of block device /dev/mmcblk0p3 is 512 bytes. Mender will write in chunks of 1048576 bytes  
> 2020-12-03 10:07:26 +0000 UTC info: All bytes were successfully written to the new partition  
> 2020-12-03 10:07:26 +0000 UTC info: The optimized block-device writer wrote a total of 3565 frames, where 0 frames did need to be rewritten (i.e., skipped)  
> 2020-12-03 10:07:27 +0000 UTC info: Wrote 3737124864/3737124864 bytes to the inactive partition  
> 2020-12-03 10:07:28 +0000 UTC info: State transition: update-store [Download\_Enter] → update-after-store [Download\_Leave]  
> 2020-12-03 10:07:28 +0000 UTC info: State transition: update-after-store [Download\_Leave] → update-install [ArtifactInstall]  
> 2020-12-03 10:07:28 +0000 UTC info: Enabling partition with new image installed to be a boot candidate: 3  
> 2020-12-03 10:07:28 +0000 UTC info: State transition: update-install [ArtifactInstall] → reboot [ArtifactReboot\_Enter]  
> 2020-12-03 10:07:28 +0000 UTC info: Rebooting device(s)  
> 2020-12-03 10:07:28 +0000 UTC info: Mender rebooting from active partition: /dev/mmcblk0p2  
> 2020-11-12 04:01:07 +0000 UTC info: Running Mender client version: 2.4.0  
> 2020-11-12 04:01:07 +0000 UTC info: State transition: init [none] → after-reboot [ArtifactReboot\_Leave]  
> 2020-11-12 04:01:07 +0000 UTC info: State transition: after-reboot [ArtifactReboot\_Leave] → after-reboot [ArtifactReboot\_Leave]  
> 2020-11-12 04:01:07 +0000 UTC info: State transition: after-reboot [ArtifactReboot\_Leave] → update-commit [ArtifactCommit\_Enter]  
> 2020-11-12 04:01:08 +0000 UTC info: Device unauthorized; attempting reauthorization  
> 2020-11-12 04:01:09 +0000 UTC warning: Reauthorization failed with error: transient error: authorization request failed: (request\_id: ): authentication request rejected server error message: dev auth: unauthorized  
> 2020-11-12 04:01:09 +0000 UTC error: Got unexpected HTTP status when reporting status: 401  
> 2020-11-12 04:01:09 +0000 UTC error: error reporting update status: (request\_id: ): reporting status failed, bad status 401 server error message: failed to parse server response: json: cannot unmarshal object into Go struct field .error of type string  
> 2020-11-12 04:01:09 +0000 UTC error: Failed to send status report to server: transient error: (request\_id: ): reporting status failed, bad status 401 server error message: failed to parse server response: json: cannot unmarshal object into Go struct field .error of type string  
> 2020-11-12 04:01:09 +0000 UTC info: State transition: update-commit [ArtifactCommit\_Enter] → update-pre-commit-status-report-retry [ArtifactCommit\_Enter]  
> 2020-12-03 10:57:43 +0000 UTC info: State transition: update-pre-commit-status-report-retry [ArtifactCommit\_Enter] → update-commit [ArtifactCommit\_Enter]  
> 2020-12-03 10:57:44 +0000 UTC info: Device unauthorized; attempting reauthorization  
> 2020-12-03 10:57:44 +0000 UTC warning: Reauthorization failed with error: transient error: authorization request failed: (request\_id: ): authentication request rejected server error message: dev auth: unauthorized  
> 2020-12-03 10:57:44 +0000 UTC error: Got unexpected HTTP status when reporting status: 401  
> 2020-12-03 10:57:44 +0000 UTC error: error reporting update status: (request\_id: ): reporting status failed, bad status 401 server error message: failed to parse server response: json: cannot unmarshal object into Go struct field .error of type string  
> 2020-12-03 10:57:44 +0000 UTC error: Failed to send status report to server: transient error: (request\_id: ): reporting status failed, bad status 401 server error message: failed to parse server response: json: cannot unmarshal object into Go struct field .error of type string  
> 2020-12-03 10:57:44 +0000 UTC info: State transition: update-commit [ArtifactCommit\_Enter] → update-pre-commit-status-report-retry [ArtifactCommit\_Enter]  
> 2020-12-03 10:58:14 +0000 UTC info: State transition: update-pre-commit-status-report-retry [ArtifactCommit\_Enter] → update-commit [ArtifactCommit\_Enter]  
> 2020-12-03 10:58:14 +0000 UTC info: Device unauthorized; attempting reauthorization  
> 2020-12-03 10:58:15 +0000 UTC warning: Reauthorization failed with error: transient error: authorization request failed: (request\_id: ): authentication request rejected server error message: dev auth: unauthorized  
> 2020-12-03 10:58:15 +0000 UTC error: Got unexpected HTTP status when reporting status: 401  
> 2020-12-03 10:58:15 +0000 UTC error: error reporting update status: (request\_id: ): reporting status failed, bad status 401 server error message: failed to parse server response: json: cannot unmarshal object into Go struct field .error of type string  
> 2020-12-03 10:58:15 +0000 UTC error: Failed to send status report to server: transient error: (request\_id: ): reporting status failed, bad status 401 server error message: failed to parse server response: json: cannot unmarshal object into Go struct field .error of type string  
> 2020-12-03 10:58:15 +0000 UTC info: State transition: update-commit [ArtifactCommit\_Enter] → update-pre-commit-status-report-retry [ArtifactCommit\_Enter]  
> 2020-12-03 10:58:45 +0000 UTC info: State transition: update-pre-commit-status-report-retry [ArtifactCommit\_Enter] → update-commit [ArtifactCommit\_Enter]  
> 2020-12-03 10:58:45 +0000 UTC info: Device unauthorized; attempting reauthorization  
> 2020-12-03 10:58:45 +0000 UTC warning: Reauthorization failed with error: transient error: authorization request failed: (request\_id: ): authentication request rejected server error message: dev auth: unauthorized  
> 2020-12-03 10:58:45 +0000 UTC error: Got unexpected HTTP status when reporting status: 401  
> 2020-12-03 10:58:45 +0000 UTC error: error reporting update status: (request\_id: ): reporting status failed, bad status 401 server error message: failed to parse server response: json: cannot unmarshal object into Go struct field .error of type string  
> 2020-12-03 10:58:45 +0000 UTC error: Failed to send status report to server: transient error: (request\_id: ): reporting status failed, bad status 401 server error message: failed to parse server response: json: cannot unmarshal object into Go struct field .error of type string  
> 2020-12-03 10:58:45 +0000 UTC info: State transition: update-commit [ArtifactCommit\_Enter] → update-pre-commit-status-report-retry [ArtifactCommit\_Enter]  
> 2020-12-03 10:58:45 +0000 UTC error: transient error: Tried sending status report maximum number of times.  
> 2020-12-03 10:58:45 +0000 UTC info: State transition: update-pre-commit-status-report-retry [ArtifactCommit\_Enter] → rollback [ArtifactRollback]  
> 2020-12-03 10:58:45 +0000 UTC info: Performing rollback  
> 2020-12-03 10:58:45 +0000 UTC info: Setting partition for rollback: 2  
> 2020-12-03 10:58:45 +0000 UTC info: State transition: rollback [ArtifactRollback] → rollback-reboot [ArtifactRollbackReboot\_Enter]  
> 2020-12-03 10:58:45 +0000 UTC info: Rebooting device(s) after rollback  
> 2020-12-03 10:58:45 +0000 UTC info: Mender rebooting from inactive partition: /dev/mmcblk0p3  
> 2020-12-03 10:07:56 +0000 UTC info: Running Mender client version: 2.4.0  
> 2020-12-03 10:07:56 +0000 UTC info: Mender shut down in state: rollback-reboot  
> 2020-12-03 10:07:56 +0000 UTC info: State transition: init [none] → verify-rollback-reboot [ArtifactRollbackReboot\_Leave]  
> 2020-12-03 10:07:56 +0000 UTC info: State transition: verify-rollback-reboot [ArtifactRollbackReboot\_Leave] → after-rollback-reboot [ArtifactRollbackReboot\_Leave]  
> 2020-12-03 10:07:56 +0000 UTC info: State transition: after-rollback-reboot [ArtifactRollbackReboot\_Leave] → update-error [ArtifactFailure]  
> 2020-12-03 10:07:56 +0000 UTC info: State transition: update-error [ArtifactFailure] → cleanup [Error]  
> 2020-12-03 10:07:56 +0000 UTC info: State transition: cleanup [Error] → update-status-report [none]  
> 2020-12-03 10:07:56 +0000 UTC info: Device unauthorized; attempting reauthorization

---

<div class="post-metadata">

**Author:** ![drewmoseley](https://yyz2.discourse-cdn.com/flex036/user_avatar/hub.mender.io/drewmoseley/32/47_2.png) [@drewmoseley](https://hub.mender.io/u/drewmoseley)\
**Post date:** [December 3, 2020, 3:32pm UTC](https://hub.mender.io/t/problem-with-mender-server-production/2925/10 "2020-12-03T15:32:38Z")

</div>

OK. I see your confusion on the certificate installation bits. The docs do link back to Yocto but that is only relevant if you are using Yocto. Since you are using Raspbian and therefore our mender-convert option, you need to include the updated server.crt file in your [rootfs overlay](https://docs.mender.io/2.5/system-updates-debian-family/convert-a-mender-debian-image/customization#rootfs-overlays). I’ll try to clean that up in the docs. Basically, you just copy the appropriate crt file that was created when you did the Production Installation setup into the mender-convert overlay and when you run mender-convert it will automatically be a part of your image.

Yes, moving the mender-inventory-geo script out of that directory will resolve the issue in your case. I think we have a better version of that script that is in our dev branch now and will be part of the next release.

Your RPI will be unable to connect to the server until the time is synchronized. That is a requirement for proper TLS certificate verification. See [this link](https://docs.mender.io/troubleshoot/mender-client#certificate-expired-or-not-yet-valid) for more details.

I’m not sure what to make of your last post about a manual reboot. I suggest we get the certificate issue resolved properly and get the time sync properly first and then revisit it.

Drew

---

<div class="post-metadata">

**Author:** ![Kennen](https://avatars.discourse-cdn.com/v4/letter/k/7993a0/32.png) [@Kennen](https://hub.mender.io/u/Kennen)\
**Post date:** [December 3, 2020, 4:26pm UTC](https://hub.mender.io/t/problem-with-mender-server-production/2925/11 "2020-12-03T16:26:00Z")

</div>

Thank for reply, it me again

> OK. I see your confusion on the certificate installation bits. The docs do link back to Yocto but that is only relevant if you are using Yocto. Since you are using Raspbian and therefore our mender-convert option, you need to include the updated server.crt file in your [rootfs overlay](https://docs.mender.io/2.5/system-updates-debian-family/convert-a-mender-debian-image/customization#rootfs-overlays). I’ll try to clean that up in the docs. Basically, you just copy the appropriate crt file that was created when you did the Production Installation setup into the mender-convert overlay and when you run mender-convert it will automatically be a part of your image  
> OK. I see your confusion on the certificate installation bits. The docs do link back to Yocto but that is only relevant if you are using Yocto. Since you are using Raspbian and therefore our mender-convert option, you need to include the updated server.crt file in your [rootfs overlay](https://docs.mender.io/2.5/system-updates-debian-family/convert-a-mender-debian-image/customization#rootfs-overlays). I’ll try to clean that up in the docs. Basically, you just copy the appropriate crt file that was created when you did the Production Installation setup into the mender-convert overlay and when you run mender-convert it will automatically be a part of your image

I notice that you mention mender-convert, I don’t see it in any task of Production Installation so why you mention it? Because as I know the docs just said about create server at all

> Yes, moving the mender-inventory-geo script out of that directory will resolve the issue in your case. I think we have a better version of that script that is in our dev branch now and will be part of the next release.

Can you tell me the specific time please, I’m interns of a company so it kinda important to me. I’ll be much appreciated

> Your RPI will be unable to connect to the server until the time is synchronized. That is a requirement for proper TLS certificate verification. See [this link](https://docs.mender.io/troubleshoot/mender-client#certificate-expired-or-not-yet-valid) for more detail

Well, I have made the time on workstation and RPI sync together ( at least is in same time and timezone ) and now RPI can be connect to server but can’t deploy.

---

<div class="post-metadata">

**Author:** ![drewmoseley](https://yyz2.discourse-cdn.com/flex036/user_avatar/hub.mender.io/drewmoseley/32/47_2.png) [@drewmoseley](https://hub.mender.io/u/drewmoseley)\
**Post date:** [December 3, 2020, 7:21pm UTC](https://hub.mender.io/t/problem-with-mender-server-production/2925/12 "2020-12-03T19:21:06Z")

</div>

The mender-convert utility is the tool we use to update the client images to include Mender, to have the appropriate configuration, certificates, partitions, etc. [Details are here.](https://docs.mender.io/system-updates-debian-family). The “Production Installation” instructions you ran through were just the server-side steps.

The next release date is not firm yet but we expect it by the end of Dec.

Drew

---

<div class="post-metadata">

**Author:** ![Kennen](https://avatars.discourse-cdn.com/v4/letter/k/7993a0/32.png) [@Kennen](https://hub.mender.io/u/Kennen)\
**Post date:** [December 3, 2020, 7:39pm UTC](https://hub.mender.io/t/problem-with-mender-server-production/2925/13 "2020-12-03T19:39:45Z")

</div>

> The next release date is not firm yet but we expect it by the end of Dec

Thanks a lot for you infomation

> The mender-convert utility is the tool we use to update the client images to include Mender, to have the appropriate configuration, certificates, partitions, etc. [Details are here.](https://docs.mender.io/system-updates-debian-family). The “Production Installation” instructions you ran through were just the server-side steps.

I think i get it. You idea was on my workstation, create a image of Raspbian which was include all configuration, cert , etc with mender convert and after that flash it into SD card and put it into RPI so when RPI boot up it can auto connect to mender server right? But if i want to connect a fresh OS RPI to server, is there anyway to do that?

---

<div class="post-metadata">

**Author:** ![drewmoseley](https://yyz2.discourse-cdn.com/flex036/user_avatar/hub.mender.io/drewmoseley/32/47_2.png) [@drewmoseley](https://hub.mender.io/u/drewmoseley)\
**Post date:** [December 3, 2020, 8:25pm UTC](https://hub.mender.io/t/problem-with-mender-server-production/2925/14 "2020-12-03T20:25:01Z")

</div>

I think what you are interested in is covered by our [docs here](https://docs.mender.io/get-started) and [here](https://docs.mender.io/client-installation/install-with-debian-package#install-mender-using-the-debian-package).

Note that without the multiple-partition setup that is configured by mender-convert you will not be able to do [robust full image updates](https://docs.mender.io/overview/introduction#robust-system-updates) as that requires the dual A/B partition setup.

---

<div class="post-metadata">

**Author:** ![Kennen](https://avatars.discourse-cdn.com/v4/letter/k/7993a0/32.png) [@Kennen](https://hub.mender.io/u/Kennen)\
**Post date:** [December 9, 2020, 9:53am UTC](https://hub.mender.io/t/problem-with-mender-server-production/2925/15 "2020-12-09T09:53:40Z")

</div>

Thanks for all infomation you give me Mr @drewmoseley, I’m now can successfully build Productions installation.

---

<div class="post-metadata">

**Author:** ![Kennen](https://avatars.discourse-cdn.com/v4/letter/k/7993a0/32.png) [@Kennen](https://hub.mender.io/u/Kennen)\
**Post date:** [December 9, 2020, 10:11am UTC](https://hub.mender.io/t/problem-with-mender-server-production/2925/16 "2020-12-09T10:11:32Z")

</div>

I have another problem here. Hope you can explain for me  
For the last few days ago, I create a snapshot on RPi which installed some stuff ( RPI already connected to Hosted Mender ) using mender artifact. After that I upload that snapshot to Hosted Mender and started deploy to a fresh RPI ( connected to Hosted Mender ). Deployment were failed so I want to ask that does the difference between tenant token related to this because according to the docs it said snapshot can be used to deploy to another device.

---

<div class="post-metadata">

**Author:** ![Kennen](https://avatars.discourse-cdn.com/v4/letter/k/7993a0/32.png) [@Kennen](https://hub.mender.io/u/Kennen)\
**Post date:** [December 9, 2020, 6:41pm UTC](https://hub.mender.io/t/problem-with-mender-server-production/2925/17 "2020-12-09T18:41:50Z")

</div>

I have resolved this. Because I use same device so Identity is conflict.
