<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://forums.garmin.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>Discussion - Recent Threads</title><link>https://forums.garmin.com/developer/fit-sdk/f/discussion</link><description>Discussion about all things FIT SDK</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Wed, 10 Jun 2026 17:04:19 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://forums.garmin.com/developer/fit-sdk/f/discussion" /><item><title>Create workout with steps using the SDK</title><link>https://forums.garmin.com/thread/437845?ContentTypeID=0</link><pubDate>Wed, 10 Jun 2026 17:04:19 GMT</pubDate><guid isPermaLink="false">a9571b57-dd57-479e-8763-8f8a603e40aa:aff0d127-5cf5-4cfe-ab45-7b5e1bf51df6</guid><dc:creator>ReiterPeter</dc:creator><slash:comments>0</slash:comments><comments>https://forums.garmin.com/thread/437845?ContentTypeID=0</comments><wfw:commentRss>https://forums.garmin.com/developer/fit-sdk/f/discussion/437845/create-workout-with-steps-using-the-sdk/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;I am currently developing a strength training application for my Garmin watch. The application is able to record an activity using the&amp;nbsp;Toybox.ActivityRecording.Session.&lt;/p&gt;
&lt;p&gt;After running the workout with session.start(), session.stop() and session.save(), the activity is stored on my device and is uploaded to Garmin Connect.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;If I create a strength training with my watch using the standard strength training app, I have a number of sets including reps, the time of the set and the time of the pause. It looks like this in Garmin Connect:&lt;/p&gt;
&lt;p&gt;&lt;img style="max-height:240px;max-width:320px;" src="https://forums.garmin.com/resized-image/__size/640x480/__key/communityserver-discussions-components-files/502/Bildschirmfoto-2026_2D00_06_2D00_10-um-18.51.58.png" alt=" " /&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;When I create an activity with my self made application, I cannot&amp;nbsp;add any sets to the strength training. The method &amp;#39;createFIeld(...) is not creating the correct data field in the FIT file.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;By decoding the FIT file from my watch, I found the required data that is used to create the sets inside the Garmin Connect app:&lt;br /&gt;&lt;br /&gt;[embed:dc8ab71f-3b98-42d9-b0f6-e21e02a0f8e2:66143fb5-27f4-4464-9b95-f692981de9d2:type=text&amp;text=%5B%0A%09%7B...%7D%2C%0A%09%7B%0A%09%09%22frame_type%22%3A%20%22definition_message%22%2C%0A%09%09%22name%22%3A%20%22set%22%2C%0A%09%09%22header%22%3A%20%7B%0A%09%09%09%22local_mesg_num%22%3A%202%2C%0A%09%09%09%22time_offset%22%3A%20null%2C%0A%09%09%09%22is_developer_data%22%3A%20false%0A%09%09%7D%2C%0A%09%09%22global_mesg_num%22%3A%20225%2C%0A%09%09%22endian%22%3A%20%22%3C%22%2C%0A%09%09%22field_defs%22%3A%20%5B%0A%09%09%09...%0A%09%09%5D%2C%0A%09%09%22dev_field_defs%22%3A%20%5B%5D%2C%0A%09%09%22chunk%22%3A%20%7B%0A%09%09%09%22index%22%3A%2013%2C%0A%09%09%09%22offset%22%3A%201546%2C%0A%09%09%09%22size%22%3A%2051%0A%09%09%7D%0A%09%7D%2C%0A%09%7B...%7D%0A%5D]&lt;/p&gt;
&lt;p&gt;Therefore, I tried to create the data inside my application, but haven&amp;#39;t found any way to create the data field for sets.&lt;/p&gt;
&lt;p&gt;Does anybody know, how to add the sets to my application, so I can view the sets inside the Garmin Connect app?&lt;/p&gt;</description></item><item><title>Looking for corrupt FIT files</title><link>https://forums.garmin.com/thread/389942?ContentTypeID=0</link><pubDate>Thu, 31 Oct 2024 06:55:55 GMT</pubDate><guid isPermaLink="false">a9571b57-dd57-479e-8763-8f8a603e40aa:026fed7d-5eac-4071-b337-08ed79244f49</guid><dc:creator>Alan</dc:creator><slash:comments>7</slash:comments><comments>https://forums.garmin.com/thread/389942?ContentTypeID=0</comments><wfw:commentRss>https://forums.garmin.com/developer/fit-sdk/f/discussion/389942/looking-for-corrupt-fit-files/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;I have just made a FIT file repair tool.&lt;/p&gt;
&lt;p&gt;I have downloaded some healthy FIT files on Internet and then tried to simulate corruptions on these files by:&lt;/p&gt;
&lt;p&gt;1. Add/Remove/Change some bytes from different parts of the FIT file, including the header/middle/tail.&lt;/p&gt;
&lt;p&gt;And my tool is able to fix all these kinds of corruptions.&lt;/p&gt;
&lt;p&gt;However, since that is only a simulation test, I want to make more tests on corrupt FIT files in the real life.&lt;/p&gt;
&lt;p&gt;So, can anyone send me some corrupt FIT files for testing purpose only. As a return, I will send the fixed file back to you for free.&lt;/p&gt;
&lt;p&gt;Thank you very much!&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Note: You can attach your corrupt FIT file in your post, and I will attach the fixed one in my reply.&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>RE: Looking for corrupt FIT files</title><link>https://forums.garmin.com/thread/2036743?ContentTypeID=1</link><pubDate>Sun, 07 Jun 2026 05:58:00 GMT</pubDate><guid isPermaLink="false">a9571b57-dd57-479e-8763-8f8a603e40aa:d8a504d6-b0ee-4366-ad24-a0e7c3b7b295</guid><dc:creator>Alan</dc:creator><slash:comments>0</slash:comments><comments>https://forums.garmin.com/thread/2036743?ContentTypeID=1</comments><wfw:commentRss>https://forums.garmin.com/developer/fit-sdk/f/discussion/389942/looking-for-corrupt-fit-files/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;No worries. Next time when you have such files, you can upload them here.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Looking for corrupt FIT files</title><link>https://forums.garmin.com/thread/2036619?ContentTypeID=1</link><pubDate>Sat, 06 Jun 2026 12:12:36 GMT</pubDate><guid isPermaLink="false">a9571b57-dd57-479e-8763-8f8a603e40aa:dca9b199-17ee-4478-9cbd-016129e572e4</guid><dc:creator>Duma-70</dc:creator><slash:comments>1</slash:comments><comments>https://forums.garmin.com/thread/2036619?ContentTypeID=1</comments><wfw:commentRss>https://forums.garmin.com/developer/fit-sdk/f/discussion/389942/looking-for-corrupt-fit-files/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;thanks Alan but it&amp;#39;s been so long that I don&amp;#39;t have the file anymore.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Looking for corrupt FIT files</title><link>https://forums.garmin.com/thread/2036618?ContentTypeID=1</link><pubDate>Sat, 06 Jun 2026 11:51:17 GMT</pubDate><guid isPermaLink="false">a9571b57-dd57-479e-8763-8f8a603e40aa:2197af98-22a1-4b21-8b67-5e7c1417fd3f</guid><dc:creator>Duma-70</dc:creator><slash:comments>0</slash:comments><comments>https://forums.garmin.com/thread/2036618?ContentTypeID=1</comments><wfw:commentRss>https://forums.garmin.com/developer/fit-sdk/f/discussion/389942/looking-for-corrupt-fit-files/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;thank you for trying. it didn&amp;#39;t work.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Looking for corrupt FIT files</title><link>https://forums.garmin.com/thread/2036564?ContentTypeID=1</link><pubDate>Sat, 06 Jun 2026 03:16:33 GMT</pubDate><guid isPermaLink="false">a9571b57-dd57-479e-8763-8f8a603e40aa:33d9ddda-a867-4183-9c36-627b97f593cc</guid><dc:creator>Alan</dc:creator><slash:comments>1</slash:comments><comments>https://forums.garmin.com/thread/2036564?ContentTypeID=1</comments><wfw:commentRss>https://forums.garmin.com/developer/fit-sdk/f/discussion/389942/looking-for-corrupt-fit-files/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Can you upload your corrupt files to Google Drive or attached to a reply so that I can analyze them for you? Currently&amp;nbsp;my understanding of the FIT file is on the official FIT file format specification at&amp;nbsp;&lt;a id="" href="https://developer.garmin.com/fit/protocol/"&gt;https://developer.garmin.com/fit/protocol/&lt;/a&gt;. So if a file is corrupt, I can try to make it follow the specification. It is interesting to see other possible corruption patterns which makes the data look strange though the file still follow the specification.&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Looking for corrupt FIT files</title><link>https://forums.garmin.com/thread/2036383?ContentTypeID=1</link><pubDate>Fri, 05 Jun 2026 10:42:11 GMT</pubDate><guid isPermaLink="false">a9571b57-dd57-479e-8763-8f8a603e40aa:565734a5-2d5c-4193-9f3c-9e8094b2c9f8</guid><dc:creator>4870762</dc:creator><slash:comments>1</slash:comments><comments>https://forums.garmin.com/thread/2036383?ContentTypeID=1</comments><wfw:commentRss>https://forums.garmin.com/developer/fit-sdk/f/discussion/389942/looking-for-corrupt-fit-files/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;I may be able to help with testing. I have encountered several corrupted FIT files over the years due to interrupted syncs, device freezes, and incomplete activity saves. Corrupt FIT files are unfortunately a fairly common issue in the Garmin ecosystem, and many users rely on repair tools such as FIT File Repair Tool or FIT File Tools to recover activity data. It would be interesting to see whether your analysis can help identify common corruption patterns across different devices and firmware versions.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: python SDK weight_scale, weight - potential bug</title><link>https://forums.garmin.com/thread/2035633?ContentTypeID=1</link><pubDate>Tue, 02 Jun 2026 17:17:15 GMT</pubDate><guid isPermaLink="false">a9571b57-dd57-479e-8763-8f8a603e40aa:519de691-7e92-4455-8e05-454090b800ea</guid><dc:creator>Eli FIT</dc:creator><slash:comments>0</slash:comments><comments>https://forums.garmin.com/thread/2035633?ContentTypeID=1</comments><wfw:commentRss>https://forums.garmin.com/developer/fit-sdk/f/discussion/437310/python-sdk-weight_scale-weight---potential-bug/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Hello, this is the correct place to raise this question.&lt;/p&gt;
&lt;p&gt;You are&amp;nbsp;right that the issue is due to the weight field in the weight_scale mesg having a type of weight (enum) rather than a uint16. The weight type is&amp;nbsp;a uint16 value under the hood but is interpreted by the Python and JavaScript SDKs as an enum rather than the intended numeric type.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;This&amp;nbsp;causes both the encoder and decoder to handle&amp;nbsp;the value without applying or reversing the scale/offset. For example, when encoding a weight with a decimal e.g. 85.56, the encoder will currently truncate the value to 85 rather than apply the scale of 100.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="python"&gt;&amp;#39;weight&amp;#39;: {
    &amp;#39;0xFFFE&amp;#39;: &amp;#39;calculating&amp;#39;,
},&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;Thanks for bringing this to our attention! We&amp;#39;ll work on getting this fixed in both SDKs and address this post when it has been released.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>python SDK weight_scale, weight - potential bug</title><link>https://forums.garmin.com/thread/437310?ContentTypeID=0</link><pubDate>Mon, 01 Jun 2026 17:58:28 GMT</pubDate><guid isPermaLink="false">a9571b57-dd57-479e-8763-8f8a603e40aa:477e7794-958a-46ca-8bcd-a660429fc3ba</guid><dc:creator>8294519</dc:creator><slash:comments>1</slash:comments><comments>https://forums.garmin.com/thread/437310?ContentTypeID=0</comments><wfw:commentRss>https://forums.garmin.com/developer/fit-sdk/f/discussion/437310/python-sdk-weight_scale-weight---potential-bug/rss?ContentTypeId=0</wfw:commentRss><description>&lt;div&gt;
&lt;div&gt;&lt;span&gt;I wrote an encoder based on the pythonSDK test_encode_activity_recipe.py. It seemed to work well except for the weight key like below:&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div&gt;&lt;span&gt;&lt;/span&gt;&lt;/div&gt;
[embed:dc8ab71f-3b98-42d9-b0f6-e21e02a0f8e2:5cc318b1-5781-4013-8ac1-7bb39107ff75:type=python&amp;text=mesgs.append%28%7B%0A%20%20%20%20%27mesg_num%27%3A%20Profile%5B%27mesg_num%27%5D%5B%27WEIGHT_SCALE%27%5D%2C%0A%20%20%20%20%27timestamp%27%3A%20scale_date%2C%0A%20%20%20%20%27weight%27%3A%208400%2C%20%23decoding%20issue%3F%0A%20%20%20%20%27muscle_mass%27%3A%2066.0%2C%0A%20%20%20%20%7D%29Code]&lt;br /&gt;&lt;br /&gt;
&lt;div&gt;&lt;span&gt;The &amp;#39;weight&amp;#39; is a weight type and supposed to be in kilograms; however, it seems to scale incorrectly (8400 instead of 84.0kg). The other keys that use mass (eg/ muscle_mass) all convert from to kilograms okay when uploading the FIT file to Connect. Perhaps it&amp;#39;s a type weight vs type unit16 issue? Thoughts?&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div&gt;&lt;span&gt;Thanks!&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;PS Hopefully I&amp;#39;m writing this in the correct place, apologies if not. &amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;</description></item><item><title>does Garmin/Firstbeat silently track Aerobic Threshold in FIT?</title><link>https://forums.garmin.com/thread/437346?ContentTypeID=0</link><pubDate>Tue, 02 Jun 2026 13:22:27 GMT</pubDate><guid isPermaLink="false">a9571b57-dd57-479e-8763-8f8a603e40aa:79bfca8c-001b-48ef-a152-95d8b74c6492</guid><dc:creator>RinseRepeat</dc:creator><slash:comments>0</slash:comments><comments>https://forums.garmin.com/thread/437346?ContentTypeID=0</comments><wfw:commentRss>https://forums.garmin.com/developer/fit-sdk/f/discussion/437346/does-garmin-firstbeat-silently-track-aerobic-threshold-in-fit/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Is it plausible on the newest Garmin watches they silently track Aerobic Threshold in the Firstbeat ecosystem?&lt;/p&gt;
&lt;p&gt;The advanced historical projected LTHR is new since Fenix7/Fenix8 since the Fenix6 Firstbeat doesn&amp;#39;t do that&lt;/p&gt;
&lt;p&gt;Which makes me wonder if buried particularly in Run activities they are silently tracking Aerobic Threshold&lt;/p&gt;
&lt;p&gt;It cannot be done from a single run, it would have to be over several activity/weeks, so it would have to be forwarded in each FIT file&lt;/p&gt;
&lt;p&gt;Just to clarify, LTHR is actually anaerobic threshold (aka Ventilatory Threshold 2)&lt;/p&gt;
&lt;p&gt;Aerobic Threshold is sometimes rarely called &amp;quot;fatmax&amp;quot; or&amp;nbsp;&lt;span&gt;Ventilatory Threshold 1 aka AeT&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;AeT is typically half of vo2max but not always depending on training/genetics&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;I&amp;#39;m kinda surprised Garmin doesn&amp;#39;t openly expose/track Aerobic Threshold as of 2026, they&amp;#39;ve practically exhausted every other metric in Firstbeat&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;But it basically MUST silently do it since you are given an Aerobic+Anaerobic score for each Run&lt;/span&gt;&lt;/p&gt;</description></item><item><title>Rust #![no_std] library for decoding and encoding FIT files</title><link>https://forums.garmin.com/thread/436873?ContentTypeID=0</link><pubDate>Mon, 25 May 2026 06:27:06 GMT</pubDate><guid isPermaLink="false">a9571b57-dd57-479e-8763-8f8a603e40aa:9b10cda5-58b2-46a4-82bb-d5b3b049d63c</guid><dc:creator>muktihari</dc:creator><slash:comments>0</slash:comments><comments>https://forums.garmin.com/thread/436873?ContentTypeID=0</comments><wfw:commentRss>https://forums.garmin.com/developer/fit-sdk/f/discussion/436873/rust-no_std-library-for-decoding-and-encoding-fit-files/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Hi, I created a Rust library for decoding and encoding FIT files with #![no_std] support, making it portable across a wide range of environments; from baremetal, WebAssembly to server applications, and potentially mobile platforms such as Android and iOS as well. The library is designed to work in baremetal Rust, where performance and memory efficiency are carefully considered.&lt;/p&gt;
&lt;p&gt;Repository: &lt;a href="https://github.com/muktihari/rustyfit" rel="noopener noreferrer" target="_blank"&gt;https://github.com/muktihari/rustyfit&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I originally started this project to learn Rust, and also because the official FIT SDK currently does not support Rust. I previously built a FIT library in Go (&lt;a href="https://github.com/muktihari/fit"&gt;https://github.com/muktihari/fit&lt;/a&gt;), so I thought it would be interesting to do a Rust version as well. I Hope it could be useful for others working with FIT files in Rust ecosystems.&lt;br /&gt;&lt;br /&gt;The project is open source and still evolving, so feedback, bug reports, and contributions are very welcome.&lt;br /&gt;&lt;br /&gt;If companies or teams using Garmin FIT technologies need assistance integrating or extending it, I&amp;rsquo;d also be happy to collaborate professionally.&lt;br /&gt;&lt;br /&gt;And of course, if Garmin is ever interested in making this capability official or collaborating on maintenance, I&amp;rsquo;d be excited to discuss that as well.&lt;/p&gt;</description></item><item><title>Transfer data to Strava</title><link>https://forums.garmin.com/thread/361181?ContentTypeID=0</link><pubDate>Tue, 20 Feb 2024 04:40:09 GMT</pubDate><guid isPermaLink="false">a9571b57-dd57-479e-8763-8f8a603e40aa:70af4c77-c4d7-436d-9b6b-880ba9d22158</guid><dc:creator>Gazz</dc:creator><slash:comments>4</slash:comments><comments>https://forums.garmin.com/thread/361181?ContentTypeID=0</comments><wfw:commentRss>https://forums.garmin.com/developer/fit-sdk/f/discussion/361181/transfer-data-to-strava/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Hi, My daily exercise routine is automatically transferred to Strava but this takes place before I have done my editing for specific sports etc. the result being that I have to then do the same edit in my Strava App. Is there any way of delaying the transfer until all editing has been completed on the Garmin App once &amp;nbsp;the transfer takes place from my Garmin watch to the App. Cheers, Garry Smith&lt;/p&gt;</description></item><item><title>RE: Transfer data to Strava</title><link>https://forums.garmin.com/thread/2033102?ContentTypeID=1</link><pubDate>Fri, 22 May 2026 13:37:26 GMT</pubDate><guid isPermaLink="false">a9571b57-dd57-479e-8763-8f8a603e40aa:ad2fd30a-2ee8-43e3-af7e-e55ee085d32a</guid><dc:creator>cbanks</dc:creator><slash:comments>0</slash:comments><comments>https://forums.garmin.com/thread/2033102?ContentTypeID=1</comments><wfw:commentRss>https://forums.garmin.com/developer/fit-sdk/f/discussion/361181/transfer-data-to-strava/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Did you ever figure this up Gazz? Running into the same issue with not being able to refresh/re-sync the data to Strava after updating the workout info on the Garmin Connect app.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: C SDK version 21.171.0 compile issues under Xcode / Swift Package</title><link>https://forums.garmin.com/thread/2032521?ContentTypeID=1</link><pubDate>Tue, 19 May 2026 22:19:31 GMT</pubDate><guid isPermaLink="false">a9571b57-dd57-479e-8763-8f8a603e40aa:6253139d-effd-4a96-bc39-6c4d057baf20</guid><dc:creator>Ben FIT</dc:creator><slash:comments>0</slash:comments><comments>https://forums.garmin.com/thread/2032521?ContentTypeID=1</comments><wfw:commentRss>https://forums.garmin.com/developer/fit-sdk/f/discussion/413370/c-sdk-version-21-171-0-compile-issues-under-xcode-swift-package/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;I apologize for the very late response to your question. We had a few posts get&amp;nbsp;unintentionally stuck in a moderation queue, and the queue was recently purged.&lt;br /&gt;&lt;br /&gt;Are you still having this issue? About the time of your post we did add FIT_CAST to the C SDK to help with compiling the C SDK with a C++ compiler.&amp;nbsp;That change would be a suspect since it is the only change to the C SDK in a while.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;The &amp;quot;work-around&amp;quot; is to use the FIT Swift SDK. It will not be as fast as the C SDK, but the latest release included a handful of performance improvements.&amp;nbsp;&lt;br /&gt;&lt;a id="" href="https://github.com/garmin/fit-swift-sdk"&gt;https://github.com/garmin/fit-swift-sdk&lt;/a&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>C SDK version 21.171.0 compile issues under Xcode / Swift Package</title><link>https://forums.garmin.com/thread/413370?ContentTypeID=0</link><pubDate>Sun, 01 Jun 2025 12:05:10 GMT</pubDate><guid isPermaLink="false">a9571b57-dd57-479e-8763-8f8a603e40aa:9554e797-4791-4aaf-9891-e7bab81e34be</guid><dc:creator>cuteiosdev</dc:creator><slash:comments>1</slash:comments><comments>https://forums.garmin.com/thread/413370?ContentTypeID=0</comments><wfw:commentRss>https://forums.garmin.com/developer/fit-sdk/f/discussion/413370/c-sdk-version-21-171-0-compile-issues-under-xcode-swift-package/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;I&amp;#39;ve been using the C SDK as a swift package in apps for a few years but after updating to 21.171.0 I&amp;#39;m finding that it&amp;#39;s failing to compile with a series of errors similar to the following.&lt;/p&gt;
&lt;p&gt;Macro &amp;#39;FIT_MESG_NUM_FILE_ID&amp;#39; unavailable: structure not supported&lt;/p&gt;
&lt;p&gt;Has anyone encountered this error before and know of a solution?&lt;/p&gt;
&lt;p&gt;Thanks,&lt;/p&gt;
&lt;p&gt;Amy&lt;/p&gt;</description></item><item><title>Type definitions for @garmin/fitsdk (TypeScript or JSDoc)</title><link>https://forums.garmin.com/thread/355839?ContentTypeID=0</link><pubDate>Sun, 31 Dec 2023 02:51:34 GMT</pubDate><guid isPermaLink="false">a9571b57-dd57-479e-8763-8f8a603e40aa:8d92a394-e4ab-4826-b319-837c76dd55f6</guid><dc:creator>4248643</dc:creator><slash:comments>3</slash:comments><comments>https://forums.garmin.com/thread/355839?ContentTypeID=0</comments><wfw:commentRss>https://forums.garmin.com/developer/fit-sdk/f/discussion/355839/type-definitions-for-garmin-fitsdk-typescript-or-jsdoc/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Are there any plans on including the type definitions for @garmin/fitsdk? We use Typescript for development and would love to have the type definitions to support our developers. This would be valuable not only for TypeScript projects out there but also JavaScript projects relying on JSDoc.&lt;/p&gt;
&lt;p&gt;See&amp;nbsp;&lt;a href="https://github.com/DefinitelyTyped/DefinitelyTyped" rel="noopener noreferrer" target="_blank"&gt;DefinitelyTyped&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>RE: Type definitions for @garmin/fitsdk (TypeScript or JSDoc)</title><link>https://forums.garmin.com/thread/2032515?ContentTypeID=1</link><pubDate>Tue, 19 May 2026 21:47:48 GMT</pubDate><guid isPermaLink="false">a9571b57-dd57-479e-8763-8f8a603e40aa:c40e31de-32cc-45e1-8dca-5c856cd38750</guid><dc:creator>Ben FIT</dc:creator><slash:comments>0</slash:comments><comments>https://forums.garmin.com/thread/2032515?ContentTypeID=1</comments><wfw:commentRss>https://forums.garmin.com/developer/fit-sdk/f/discussion/355839/type-definitions-for-garmin-fitsdk-typescript-or-jsdoc/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;v21.205 of the JavaScript SDK added type definitions.&amp;nbsp;&lt;br /&gt;&lt;a id="" href="https://github.com/garmin/fit-javascript-sdk/tree/main/src/types"&gt;https://github.com/garmin/fit-javascript-sdk/tree/main/src/types&lt;/a&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;See the post here for more information&lt;br /&gt;&lt;a href="https://forums.garmin.com/developer/fit-sdk/f/discussion/436584/v21-205-of-the-javascript-sdk-added-type-definitions"&gt;v21.205 of the JavaScript SDK added type definitions.&lt;/a&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>v21.205 of the JavaScript SDK added type definitions.</title><link>https://forums.garmin.com/thread/436584?ContentTypeID=0</link><pubDate>Tue, 19 May 2026 21:46:23 GMT</pubDate><guid isPermaLink="false">a9571b57-dd57-479e-8763-8f8a603e40aa:0ea4e4cf-a6dc-4669-a930-d614a6b7804e</guid><dc:creator>Ben FIT</dc:creator><slash:comments>0</slash:comments><comments>https://forums.garmin.com/thread/436584?ContentTypeID=0</comments><wfw:commentRss>https://forums.garmin.com/developer/fit-sdk/f/discussion/436584/v21-205-of-the-javascript-sdk-added-type-definitions/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;v21.205 of the JavaScript SDK added type definitions.&amp;nbsp;&lt;br /&gt;&lt;a id="" href="https://github.com/garmin/fit-javascript-sdk/tree/main/src/types"&gt;https://github.com/garmin/fit-javascript-sdk/tree/main/src/types&lt;/a&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Along with the types definitions, the decoder now adheres to the profile for array fields.&amp;nbsp;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Array fields will always be returned as arrays, even when there is only one element&lt;/li&gt;
&lt;li&gt;Non-array fields will always return a single value, even when there are multuple values&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The binary protocol allows for any field to be an array, whereas the profile provides an unenforceable contract of what fields are arrays. That is true for all SDKs. &lt;br /&gt;&lt;br /&gt;Previously, the JavaScript SDK would decode a field and then check the array length. If the length as one, then it would return the value at index zero, else it would return an&amp;nbsp;array. &lt;br /&gt;&lt;br /&gt;We did not want to carry that behavior forward when adding the type definitions. So now, the decoder references the profile to see if a field is an array or not and returns an array or scalar based on the profile.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;While this change has the potential to be a breaking change, we don&amp;#39;t think it will. The reason being is, most people should have discovered by now that sometimes a field that was not expected to be an array might be. i.e. any string field and any field&amp;nbsp;with a name that starts with &amp;quot;enhanced&amp;quot;, and everyone&amp;nbsp;should have checks in their code to handle this. If so, then that&amp;nbsp;defensive&amp;nbsp;code can be removed.&lt;br /&gt;&lt;br /&gt;If this change does break your code, the read() method of the Decoder class has a new legacyArrayMode option. The default is false. Setting the option to true&amp;nbsp;will revert back to the previous behavior. The v21.205 release did not include many profile changes, a few product ids, so the other option is to stay with 21.202 and update to 21.205 at a later time. The new&amp;nbsp;&lt;span&gt;legacyArrayMode option is marked as deprecated since we&amp;nbsp;plan&amp;nbsp;to remove&amp;nbsp;it by EOY26.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Even if you do not use TypeScript, the type definitions should provide better auto-complete and context sensitive help when using the JavaScript SDK.&lt;/p&gt;</description></item><item><title>**Persistent 429 on API login — account blocked for 48+ hours**</title><link>https://forums.garmin.com/thread/435087?ContentTypeID=0</link><pubDate>Tue, 21 Apr 2026 04:03:34 GMT</pubDate><guid isPermaLink="false">a9571b57-dd57-479e-8763-8f8a603e40aa:84588016-ad78-462a-8be9-6cefaf781f8b</guid><dc:creator>ickerc</dc:creator><slash:comments>5</slash:comments><comments>https://forums.garmin.com/thread/435087?ContentTypeID=0</comments><wfw:commentRss>https://forums.garmin.com/developer/fit-sdk/f/discussion/435087/persistent-429-on-api-login-account-blocked-for-48-hours/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Hi, I&amp;#39;m building a personal training planning tool that reads my own Garmin Connect data (activities, daily wellness, sleep) using python-garminconnect v0.3.1.&lt;/p&gt;
&lt;p&gt;After a few failed login attempts during initial setup, my account is now returning 429 on every API login attempt &amp;mdash; for 48+ hours and counting. My account works fine on the web and mobile app. No MFA enabled. No rate-limit email from Garmin.&lt;/p&gt;
&lt;p&gt;Error across all strategies:&lt;br /&gt;- `portal+cffi`: Portal login returned 429. Cloudflare is blocking this request.&lt;br /&gt;- `portal+requests`: HTTP 403&lt;br /&gt;- `mobile+cffi`: HTTP Error 429&lt;br /&gt;- `mobile+requests`: Login failed (429 Rate Limit)&lt;/p&gt;
&lt;p&gt;I&amp;#39;ve tried different IPs (home WiFi + mobile hotspot) &amp;mdash; same result. The block appears to be at the account level, not IP.&lt;/p&gt;
&lt;p&gt;Has anyone found a workaround when in this blocked state?&lt;/p&gt;
&lt;p&gt;Any help appreciated.&lt;/p&gt;</description></item><item><title>RE: **Persistent 429 on API login — account blocked for 48+ hours**</title><link>https://forums.garmin.com/thread/2032311?ContentTypeID=1</link><pubDate>Tue, 19 May 2026 10:21:57 GMT</pubDate><guid isPermaLink="false">a9571b57-dd57-479e-8763-8f8a603e40aa:9bf49f41-d961-4bd6-a8c8-64ae8ab8df00</guid><dc:creator>7174550</dc:creator><slash:comments>0</slash:comments><comments>https://forums.garmin.com/thread/2032311?ContentTypeID=1</comments><wfw:commentRss>https://forums.garmin.com/developer/fit-sdk/f/discussion/435087/persistent-429-on-api-login-account-blocked-for-48-hours/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;I use a python script to grab the session cookies whilst logging in manually, that I store.&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: **Persistent 429 on API login — account blocked for 48+ hours**</title><link>https://forums.garmin.com/thread/2031937?ContentTypeID=1</link><pubDate>Mon, 18 May 2026 01:35:57 GMT</pubDate><guid isPermaLink="false">a9571b57-dd57-479e-8763-8f8a603e40aa:1dfdd47e-52cc-45bf-ab32-d7a5b05a7e0d</guid><dc:creator>3139143</dc:creator><slash:comments>0</slash:comments><comments>https://forums.garmin.com/thread/2031937?ContentTypeID=1</comments><wfw:commentRss>https://forums.garmin.com/developer/fit-sdk/f/discussion/435087/persistent-429-on-api-login-account-blocked-for-48-hours/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;same issue for me - does anyone know what conditions cause this error to be raised, or how to avoid it?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Looking for corrupt FIT files</title><link>https://forums.garmin.com/thread/2031699?ContentTypeID=1</link><pubDate>Sat, 16 May 2026 03:58:45 GMT</pubDate><guid isPermaLink="false">a9571b57-dd57-479e-8763-8f8a603e40aa:a06922e5-6411-42ad-bb75-80f8e77d06f5</guid><dc:creator>Alan</dc:creator><slash:comments>2</slash:comments><comments>https://forums.garmin.com/thread/2031699?ContentTypeID=1</comments><wfw:commentRss>https://forums.garmin.com/developer/fit-sdk/f/discussion/389942/looking-for-corrupt-fit-files/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;I have fixed file, but it is much smaller than the original one. Please check if it works:&lt;br /&gt;&lt;br /&gt;&lt;a href="https://drive.google.com/file/d/17m2PA01UW1f5sFwRDTnUSeB0elJVtCBk/view?usp=sharing"&gt;https://drive.google.com/file/d/17m2PA01UW1f5sFwRDTnUSeB0elJVtCBk/view?usp=sharing&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;You may also try other tools mentioned in this article&amp;nbsp;&lt;a id="" href="https://www.datanumen.com/fit-repair/guides/repair-fit-file/"&gt;https://www.datanumen.com/fit-repair/guides/repair-fit-file/&lt;/a&gt;&amp;nbsp;to see if one of them can fix your file.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Parsing transitions in multi-sport FIT files — best practice?</title><link>https://forums.garmin.com/thread/2031395?ContentTypeID=1</link><pubDate>Thu, 14 May 2026 20:20:06 GMT</pubDate><guid isPermaLink="false">a9571b57-dd57-479e-8763-8f8a603e40aa:00510ad4-94fc-4b25-8397-13fe4beb3ab4</guid><dc:creator>Ben FIT</dc:creator><slash:comments>0</slash:comments><comments>https://forums.garmin.com/thread/2031395?ContentTypeID=1</comments><wfw:commentRss>https://forums.garmin.com/developer/fit-sdk/f/discussion/436246/parsing-transitions-in-multi-sport-fit-files-best-practice/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;If the user is creating separate Activity files for each leg of a multi-sport event, the timestamps will be serial and the individual files will not overlap.&amp;nbsp;So the&amp;nbsp;data could be easily combined, appended really, or kept separate. The trick will be autodetecting this vs asking the user to manually link them.&amp;nbsp;Go with what works best for your users and platform.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The source code that goes with that article can be found here.&amp;nbsp;&lt;br /&gt;&lt;a href="https://github.com/garmin/fit-csharp-sdk/tree/main/Cookbook/ActivityDecode"&gt;github.com/.../ActivityDecode&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Parsing transitions in multi-sport FIT files — best practice?</title><link>https://forums.garmin.com/thread/436246?ContentTypeID=0</link><pubDate>Thu, 14 May 2026 06:01:45 GMT</pubDate><guid isPermaLink="false">a9571b57-dd57-479e-8763-8f8a603e40aa:c5dc50a4-aad1-4732-9ace-4f40be381736</guid><dc:creator>S&amp;#233;bastien DONVAL</dc:creator><slash:comments>3</slash:comments><comments>https://forums.garmin.com/thread/436246?ContentTypeID=0</comments><wfw:commentRss>https://forums.garmin.com/developer/fit-sdk/f/discussion/436246/parsing-transitions-in-multi-sport-fit-files-best-practice/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Hi all,&lt;/p&gt;
&lt;p&gt;I&amp;#39;m building the activity ingestion layer for Triscale.eu, a multi-sport coaching platform (triathlon, cycling, running) based in France. We&amp;#39;re preparing to receive .FIT files from athletes via the Garmin Connect Activity API once our Developer Program access is approved.&lt;/p&gt;
&lt;p&gt;Quick question on multi-sport file structure: when an athlete records a triathlon as a single multi-sport activity (swim &amp;rarr; T1 &amp;rarr; bike &amp;rarr; T2 &amp;rarr; run), what&amp;#39;s the recommended way to identify the transitions in the FIT file?&lt;/p&gt;
&lt;p&gt;From what I&amp;#39;ve read so far, it looks like multi-sport sessions are exposed as a session per sport with sport_type changes, but I&amp;#39;d like to confirm two points:&lt;/p&gt;
&lt;p&gt;- Are transitions (T1/T2) emitted as their own session, or as a gap between sport sessions?&lt;br /&gt;- Is there a recommended message type or flag to differentiate &amp;quot;real&amp;quot; sport segments from transitions for downstream analytics?&lt;/p&gt;
&lt;p&gt;If anyone here has built triathlon-aware parsing on FIT files, would value a pointer to your approach.&lt;/p&gt;
&lt;p&gt;Thanks,&lt;br /&gt;S&amp;eacute;bastien D.&lt;br /&gt;Triscale.eu &amp;mdash; multi-sport coaching platform, FR&lt;/p&gt;</description></item><item><title>RE: Parsing transitions in multi-sport FIT files — best practice?</title><link>https://forums.garmin.com/thread/2031381?ContentTypeID=1</link><pubDate>Thu, 14 May 2026 19:05:06 GMT</pubDate><guid isPermaLink="false">a9571b57-dd57-479e-8763-8f8a603e40aa:e85ba0a7-98d7-4649-9539-23651856a6d8</guid><dc:creator>S&amp;#233;bastien DONVAL</dc:creator><slash:comments>1</slash:comments><comments>https://forums.garmin.com/thread/2031381?ContentTypeID=1</comments><wfw:commentRss>https://forums.garmin.com/developer/fit-sdk/f/discussion/436246/parsing-transitions-in-multi-sport-fit-files-best-practice/rss?ContentTypeId=0</wfw:commentRss><description>&lt;p&gt;Thanks Ben &amp;mdash; very clear, especially the LINQ Where() / Within() pattern combined with First Lap Index / Lap Count for matching Laps to Sessions. The Figure 2 diagram on multi-sport sessions answers our initial question completely.&lt;/p&gt;
&lt;p&gt;One follow-up if you have a moment: in practice we&amp;#39;ll see some athletes recording a full triathlon as a single multi-sport file (with the transition sessions you described), while others split swim and bike/run into separate Activity files &amp;mdash; they start a new Activity at T1, often on older devices or out of habit. The cookbook mentions Chained FIT files in the HRM-Swim context but not directly for this multi-sport split case. Is there a recommended pattern for stitching multiple standalone Activity files into one continuous multi-sport view, or should we treat them as independent activities and offer manual linking on our side?&lt;/p&gt;
&lt;p&gt;Either way, thanks for the responsive answer.&lt;/p&gt;
&lt;p&gt;S&amp;eacute;bastien&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>