<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://devzone.nordicsemi.com/cfs-file/__key/system/syndication/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Erroneous BLE disconnection associated with trivial, unrelated code changes with nRF51822</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/50377/erroneous-ble-disconnection-associated-with-trivial-unrelated-code-changes-with-nrf51822</link><description>Hi all, 
 I am continuing with university project now in its 4th year of development for a wearables leg motion measurement application. Two trackers with identical hardware but slightly differing firmware are used, which are called the femur and tibia</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Fri, 30 Aug 2019 06:45:39 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/50377/erroneous-ble-disconnection-associated-with-trivial-unrelated-code-changes-with-nrf51822" /><item><title>RE: Erroneous BLE disconnection associated with trivial, unrelated code changes with nRF51822</title><link>https://devzone.nordicsemi.com/thread/206990?ContentTypeID=1</link><pubDate>Fri, 30 Aug 2019 06:45:39 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:7216430d-7aea-4405-81ae-029e0a262a53</guid><dc:creator>Edvin</dc:creator><description>&lt;p&gt;Ok, so sd_ble_gatts_hvx() returns BLE_ERROR_GATTS_SYS_ATTR_MISSING.&lt;/p&gt;
&lt;p&gt;I see a couple of posts like this, such as this one:&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devzone.nordicsemi.com/f/nordic-q-a/1948/strange-error-code-13313-0x3401-returned-by-sd_ble_gatts_hvx"&gt;https://devzone.nordicsemi.com/f/nordic-q-a/1948/strange-error-code-13313-0x3401-returned-by-sd_ble_gatts_hvx&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Do you use bonding in your application? I ask because I see a lot of these posts having issues with bonding.&lt;/p&gt;
&lt;p&gt;Also, if this case is not in your on_ble_evt() in main.c (or wherever you have it), please try to include it:&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;        case BLE_GATTS_EVT_SYS_ATTR_MISSING:
            // No system attributes have been stored.
            err_code = sd_ble_gatts_sys_attr_set(m_conn_handle, NULL, 0, 0);
            APP_ERROR_CHECK(err_code);
            break; // BLE_GATTS_EVT_SYS_ATTR_MISSING&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;Best regards,&lt;/p&gt;
&lt;p&gt;Edvin&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Erroneous BLE disconnection associated with trivial, unrelated code changes with nRF51822</title><link>https://devzone.nordicsemi.com/thread/206965?ContentTypeID=1</link><pubDate>Fri, 30 Aug 2019 01:40:28 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:4794e68d-a416-4e49-a915-e5f851f490eb</guid><dc:creator>inf_sup_bus</dc:creator><description>&lt;p&gt;Hello,&lt;/p&gt;
&lt;p&gt;Yes there is definitely an APP_ERROR_CHECK(err_code) function call in line 406 in knee_angle.c. Removing the first breakpoint and adding the second breakpoint (where the second breakpoint is on line 54 of app_error.c) returns the same error information in the error_info_t structure as in my previous post.&lt;/p&gt;
&lt;p&gt;The err_code in this context is not directly returned by a SoftDevice call, it is returned by ble_central_adv_information_update(...). The definition of ble_central_adv_information_update(...) is defined exactly as you recommended in your response on the 12th August.&lt;/p&gt;
&lt;p&gt;The err_code variable is being returned from sd_ble_gatts_hvx(...), which is called within ble_central_adv_information_update(...). The value of the error code is 13313 decimal or 0x3401, which is the same error code as my last post (essentially, it&amp;#39;s the same error that&amp;#39;s occurring). This sd_ble_gatts_hvx(...) call is performing a notification, where the knee angle is being transmitted to a remote mobile phone.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Erroneous BLE disconnection associated with trivial, unrelated code changes with nRF51822</title><link>https://devzone.nordicsemi.com/thread/204397?ContentTypeID=1</link><pubDate>Fri, 16 Aug 2019 07:05:20 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:af8f4f07-c42f-40ad-bd6c-c84e0dadbb38</guid><dc:creator>Edvin</dc:creator><description>&lt;p&gt;ok. Closing in. Can you hover over the p_file_name, and see if you can find the name of the file that it is pointing to. Alternatively, copy the memory 1 values that you have in your screenshot, and see the path (if you convert them to ascii/char values. It is somewhere in components\Leg&amp;lt;something-something&amp;gt;. Should be a .c file.&lt;/p&gt;
&lt;p&gt;If you remove the first breakpoint and add the second, it should update the error_info variable, but you can see that the line number &amp;quot;line_num&amp;quot; that is passed onto this function is 0x196 = decimal: 406. So in one of the files in the path components\Leg... there is a APP_ERROR_CHECK(err_code) on line 406. This one receives an err_code != 0. What is the function that returned this err_code?&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;EDIT:&lt;br /&gt;I checked your path, but I believe you can see it if you hover over the mouse. In case not:&lt;/p&gt;
&lt;p&gt;&lt;img src="https://devzone.nordicsemi.com/resized-image/__size/320x240/__key/support-attachments/beef5d1b77644c448dabff31668f3a47-596ab611358d428d950a794bee0409f9/pastedimage1565939052022v1.png" alt=" " /&gt;&lt;/p&gt;
&lt;p&gt;So your file knee_angle.c has an APP_ERROR_CHECK(err_code); on line 406. What function returned this value? If it is not a direct softdevice call, what function inside this function returned this return value?&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Best regards,&lt;/p&gt;
&lt;p&gt;Edvin&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Erroneous BLE disconnection associated with trivial, unrelated code changes with nRF51822</title><link>https://devzone.nordicsemi.com/thread/204374?ContentTypeID=1</link><pubDate>Thu, 15 Aug 2019 23:58:50 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:a3ae05b8-b0cd-447d-b34a-d084d849d2ec</guid><dc:creator>inf_sup_bus</dc:creator><description>&lt;p&gt;Hello Edvin,&lt;/p&gt;
&lt;p&gt;I have adjusted the code to how you have suggested. These are the values of the error code, line number and file names in the error_info_t after the application stopped at the breakpoint in app_error_handler.&lt;/p&gt;
&lt;p&gt;The error code has value 0x3401 or 13313 decimal.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt=" " src="https://devzone.nordicsemi.com/resized-image/__size/1040x860/__key/communityserver-discussions-components-files/4/error_5F00_unknown_5F00_16_5F00_08_5F00_2019.PNG" /&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Erroneous BLE disconnection associated with trivial, unrelated code changes with nRF51822</title><link>https://devzone.nordicsemi.com/thread/203479?ContentTypeID=1</link><pubDate>Mon, 12 Aug 2019 07:12:18 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:a7e3f4c2-c21e-4643-82c2-a3eae9f33ca5</guid><dc:creator>Edvin</dc:creator><description>&lt;p&gt;This is your peripheral, right? I believe it is, but I get a bit confused by the name (ble_central_adv_information_update).&lt;/p&gt;
&lt;p&gt;You should check the return values of your softdevice function calls, such as sd_ble_gatts_hvx();&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;I suggest that you change the function from &lt;strong&gt;void&lt;/strong&gt; ble_central_adv_information_update() to &lt;strong&gt;uint32_t&lt;/strong&gt; ble_central_adv_information_update(), and return the value from last function call:&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;void ble_central_adv_information_update(ble_mpu_c_t *p_mpu, uint8_t* knee_angle)
{

    if(p_mpu-&amp;gt;conn_handle != BLE_CONN_HANDLE_INVALID)
    {
        ... // All the things that you already had
        hvx_params.p_data = (uint8_t*)knww_angle;
        return sd_ble_gatts_hvx(p_mpu-&amp;gt;conn_handle, &amp;amp;hvx_params);
    }
    else // p_mpu-&amp;gt;conn_handle == BLE_CONN_HANDLE_INVALID
    {
        return NRF_ERROR_INVALID_STATE;
    }

}&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;and then check the return value from your function:&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;uint32_t err_code;

knee_angle[0] = (int16_t) knee_angle_deg;
err_code = ble_central_adv_information_update(&amp;amp;m_ble_mpu_c, knee_angle);

if (err_code != NRF_ERROR_INVALIDE_STATE)
{
    APP_ERROR_CHECK(err_code);
}&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;This way it is easier to check what the application is doing. What is the return value from ble_central_adv_information_update(&amp;amp;m_ble_mpu_c, knee_angle);&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Erroneous BLE disconnection associated with trivial, unrelated code changes with nRF51822</title><link>https://devzone.nordicsemi.com/thread/203460?ContentTypeID=1</link><pubDate>Mon, 12 Aug 2019 02:27:59 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:4dbdbf31-9374-45b0-9d8b-f2048f7b4f07</guid><dc:creator>inf_sup_bus</dc:creator><description>&lt;p&gt;This project is not using FreeRTOS. The snippet of ble_central_adv_update() is attached.&lt;/p&gt;
&lt;p&gt;Would you agree that the application is likely crashing because &amp;#39;(int_16t) knee_angle_deg&amp;#39; is being copied into an unallocated space in memory, which is an illegal memory access, thus firing the HardFault_Handler?&lt;/p&gt;
&lt;p&gt;My reasoning is that it&amp;#39;s more likely the illegal memory access that&amp;#39;s causing the handler to fire as opposed to copying a 16 bit type into a memory space pointed by a pointer to uint8_t (which is knee_angle in this case), since the word length is 32 bits on the Cortex M0. As far as I know no packing is used in the source code.&lt;/p&gt;
&lt;p&gt;&lt;img alt=" " src="https://devzone.nordicsemi.com/resized-image/__size/348x587/__key/communityserver-discussions-components-files/4/ble_5F00_central_5F00_adv.PNG" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Erroneous BLE disconnection associated with trivial, unrelated code changes with nRF51822</title><link>https://devzone.nordicsemi.com/thread/203201?ContentTypeID=1</link><pubDate>Fri, 09 Aug 2019 06:19:55 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:066fbb9b-4360-4f0b-8bb1-9edaff8a0516</guid><dc:creator>Edvin</dc:creator><description>&lt;p&gt;Are you using FreeRTOS in your project?&lt;/p&gt;
&lt;p&gt;What does your ble_central_adv_update() look like?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Erroneous BLE disconnection associated with trivial, unrelated code changes with nRF51822</title><link>https://devzone.nordicsemi.com/thread/203197?ContentTypeID=1</link><pubDate>Fri, 09 Aug 2019 05:56:12 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:b7d131ee-aebc-489a-a789-b7e3c63fd55f</guid><dc:creator>inf_sup_bus</dc:creator><description>[quote userid="26071" url="~/f/nordic-q-a/50377/erroneous-ble-disconnection-associated-with-trivial-unrelated-code-changes-with-nrf51822/202518"]So does the breakpoint trigger after defining DEBUG in your preprocessor defines?[/quote]
&lt;p&gt;The debugger does not halt the program at L48 in app_error.c. However, I did notice that after stopping the debugger, the &amp;#39;code pointer&amp;#39; (yellow arrow in uVision) was pointing to line 154 of arm_startup_nrf51.s. This section is pertinent to the HardFault_Handler. The caller code for the HardFault_Handler appears to be an ARM ABI helper-function (page 17 of &lt;a href="http://infocenter.arm.com/help/topic/com.arm.doc.ihi0043d/IHI0043D_rtabi.pdf"&gt;http://infocenter.arm.com/help/topic/com.arm.doc.ihi0043d/IHI0043D_rtabi.pdf&lt;/a&gt;). The assembler code disassembly window shows that it&amp;#39;s occurring around SEGGER_RTT_printf() and ble_central_adv_information_update() function calls. I&amp;#39;ve also attached a snippet of the suspected location where the hard fault is occurring. Doing some research, I found the following resources useful:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href="http://www.keil.com/appnotes/files/apnt209.pdf"&gt;http://www.keil.com/appnotes/files/apnt209.pdf&lt;/a&gt; pp. 17-18&lt;/li&gt;
&lt;li&gt;Susheel Nuguru&amp;#39;s first response to Nordic Devzone case 107574 &amp;nbsp;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;I&amp;#39;ve attached a screenshot of the debugging view in Keil showing the debugger view. Following the Keil application note advice, the program counter (0x20005E60) contains value 0xB6D70200. Wanting to find out what the next instruction was that caused the fault, I searched the memory to find the value at 0xB6D70200. The result is unusual, as attached: the value here is just question marks. I&amp;#39;m not sure what this means; am I accessing an invalid memory location, or is the value here unknown or undefined?&lt;/p&gt;
&lt;p&gt;Following the advice from case 107574, the address at SP+0x14 is 0x20005E5C which has value 0xB7D70200. My project directory doesn&amp;#39;t seem to contain a .map file as Susheel was suggesting, so I couldn&amp;#39;t attempt to find the function associated with that location. The value at the location 0xB7D70200 was also displayed as question marks.&lt;/p&gt;
&lt;p&gt;I did note a discrepancy between the two sources I&amp;#39;ve consulted: the Keil application note states that the program counter is located at an offset of 0x18 from the main stack pointer, but case 107574 implies that the program counter is offset by 0x14. Which should I use?&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt=" " src="https://devzone.nordicsemi.com/resized-image/__size/1040x860/__key/communityserver-discussions-components-files/4/hardFaultHandler.PNG" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt=" " src="https://devzone.nordicsemi.com/resized-image/__size/627x117/__key/communityserver-discussions-components-files/4/ble_5F00_central_5F00_adv_5F00_information_5F00_update.PNG" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt=" " src="https://devzone.nordicsemi.com/resized-image/__size/224x516/__key/communityserver-discussions-components-files/4/0xb7d70200_5F00_mem_5F00_val.PNG" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt=" " src="https://devzone.nordicsemi.com/resized-image/__size/224x516/__key/communityserver-discussions-components-files/4/0xb6d70200_5F00_mem_5F00_val.PNG" /&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Erroneous BLE disconnection associated with trivial, unrelated code changes with nRF51822</title><link>https://devzone.nordicsemi.com/thread/202518?ContentTypeID=1</link><pubDate>Tue, 06 Aug 2019 06:51:31 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:f3c84d09-d3f9-4380-b2b0-55d603c33a75</guid><dc:creator>Edvin</dc:creator><description>[quote user="inf_sup_bus"]I redefined the integer type of tibia_dt and femur_dt to uint32_t as the .timestamp field of the struct is defined as uint32_t[/quote]
&lt;p&gt;&amp;nbsp;Ok. This was a shot in the dark, but I have seen something like this before. Writing too long to e.g. an uint8_t causing hard faults, because the area it may overwrite could be in the stack pointer, and then there is no way of knowing what can happen.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
[quote user="inf_sup_bus"]Do you suggest that I check the error codes in the other routines outside of update_knee_angle()?[/quote]
&lt;p&gt;&amp;nbsp;Yes. Most definitely. And the easiest way to do this is:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
[quote user="Edvin Holmseth"]Have you tried to check if the error handler fires? Try to define &amp;quot;DEBUG&amp;quot; in your preprocessor defines, and disable optimization in the compiler (let me know if you are not sure how to do this), and set a breakpoint on line 48 in app_error.c. Does that breakpoint ever get hit if you are debugging?[/quote]
&lt;p&gt;&amp;nbsp;Setting O0 should be sufficient. Not disabling optimization would still set the breakpoint on this line, but you may not be able to see the values of the variables, telling you where the APP_ERROR_CHECK() that triggered is located. You should be able to see the variable values when you use O0.&lt;/p&gt;
&lt;p&gt;So does the breakpoint trigger after defining DEBUG in your preprocessor defines?&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;BR,&lt;/p&gt;
&lt;p&gt;Edvin&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Erroneous BLE disconnection associated with trivial, unrelated code changes with nRF51822</title><link>https://devzone.nordicsemi.com/thread/202497?ContentTypeID=1</link><pubDate>Mon, 05 Aug 2019 22:39:58 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:ce6fa5c1-3427-4ab1-988c-13a5103b213f</guid><dc:creator>inf_sup_bus</dc:creator><description>&lt;p&gt;Hello Edvin,&lt;/p&gt;
&lt;p&gt;Thanks for your response. I redefined the integer type of tibia_dt and femur_dt to uint32_t as the .timestamp field of the struct is defined as uint32_t, but this did not resolve the connection issues. Your suggestion that the application is crashing when it enters update_knee_angle() and consequently causes the connection to timeout seems like the most likely scenario here.&lt;/p&gt;
&lt;p&gt;APP_ERROR_CHECK(err_code) invocations are used throughout the application when a SD or nRF API function is called, such as during the general BLE initialisation and transmit/receive routines. However, I do not currently call any API functions in update_knee_angle(). It is my understanding the err_code is a value generally returned from an API function call, so could you elaborate how I could use the error code return value to check what kind of error is being caused in update_knee_angle(), given that I don&amp;#39;t have any API function calls in update_knee_angle()? Do you suggest that I check the error codes in the other routines outside of update_knee_angle()?&lt;/p&gt;
&lt;p&gt;The minimum level of optimization available in the C/C++ tab of the Project Options to be O0, which doesn&amp;#39;t fully disable optimization but provides the minimum level of optimization. Is there a way to fully disable optimization here?&lt;/p&gt;
&lt;p&gt;I will be able to do some further debugging once my above queries have been clarified,&lt;/p&gt;
&lt;p&gt;Best regards,&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Erroneous BLE disconnection associated with trivial, unrelated code changes with nRF51822</title><link>https://devzone.nordicsemi.com/thread/201246?ContentTypeID=1</link><pubDate>Tue, 30 Jul 2019 12:32:06 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:ad42347a-309a-461e-97a3-958bd6808b9e</guid><dc:creator>Edvin</dc:creator><description>&lt;p&gt;Hello,&lt;/p&gt;
[quote user=""]SDK v11.0.0 or v12.2.0 (here I&amp;#39;m not sure which SDK exactly it is, and I do not know a way of being able to find out)&lt;br /&gt;Keil uVision V5.26.2.0 with MDK-ARM Professional Version: 5.26.2.0&lt;br /&gt;Target DLL: Segger\JL2CM3.dll&lt;br /&gt;Dialog DLL: TARMCM1.DLL&lt;br /&gt;SoftDevice version S130_nRF51_2.0.1[/quote]
&lt;p&gt;&amp;nbsp;If you are using S130 v2.0.1, then you are probably using SDK12.2.0 if SDK11.0.0 and SDK12.2.0 are your only candidates. SDK11.0.0 uses S130 v2.0.0, while SDK 12.X.0 uses S130 v2.0.1.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;So, the softdevice will not call sd_ble_gap_evt_disconnect() on it&amp;#39;s own. Not without telling you.&lt;/p&gt;
&lt;p&gt;My initial guess is that when you change your function, it somehow causes the application to crash, and the other device receives a timeout, because the first device&amp;#39;s radio goes silent.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;It is hard to say exactly what the issue is. Do you have any APP_ERROR_CHECK(err_code) that is called within the functions that you check? Have you tried to check if the error handler fires? Try to define &amp;quot;DEBUG&amp;quot; in your preprocessor defines, and disable optimization in the compiler (let me know if you are not sure how to do this), and set a breakpoint on line 48 in app_error.c. Does that breakpoint ever get hit if you are debugging?&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Another possibility, but this is a shot in the dark:&lt;/p&gt;
&lt;p&gt;&lt;span&gt;int tibia_dt = tibia_info.timestamp - prev_tibia_timestamp;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;What type of variables are tibia_info.timestamp and prev_tibia_timestamp?&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;int is not universally defined, so maybe you can try to set it to the same as tibia_info.timestamp and prev_tibia_timestamp, and see if that helps.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;But try to see if the error handler is catching something.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Best regards,&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Edvin&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>