# Troubleshooting # Intelligent downloader explained ## Summary This KB article will explain the intelligent downloader and give the best practices to upgrade your self-healed software by benefiting from this feature through Filesets / Payloads. ## Intelligent Downloader When a Fileset / Payload is deployed and the time to download has come, the FileWave Client will check for existing exact copies of the Fileset files before it starts the download. The match is met only if: 1. The file exists with the same name. 2. The file size matches. 3. The file CRC matches. The client will skip downloading all files that match existing copies on the disk. The Client will also skip the download in two other cases: 1. The Fileset files are set to never overwrite when the Fileset property "Don't overwrite existing files upon deployment" is checked. 2. The files creation date is newer than the ones in the server and this Fileset property is checked "Overwrite only if existing file is older". **Note**: Symlinks will always be replaced. ## Upgrading your Software There are two scenarios to best upgrade your self-healed software (we assume Fileset v1 is active on the clients) 1. Create the association to Fileset v2, delete the association to Fileset v1 and update the model. (this will start the upgrade immediately) 2. Create the association to Fileset v2 and set it to activate at some time in the future eg: 06:00PM and then make the Fileset v1 to Delete at 06:01pm (some time after v2 has activated) **Note:** If you set the delete time of v1 before activating v2, you end up deleting files that are needed to activate v2 and the missing files will download at verification. So, to best benefit from the intelligent downloader, it is better to go for 2. knowing that deleting Fileset v1 at 06:01PM will not delete common files with v2. # Fileset Status meanings **Fileset Inventory Status** In the stable below are the Fileset status codes that can occur in FileWave and some steps to reproduce some of them.
**Code** | **Status Type** | **Severity** | **Fileset Status (Client Info)** | **Deployment Status** | **Available Platform(s)** | **Steps to Reproduce** |
0 | UNKNOWN\_ERROR | WARNING | Fileset Error | WARNING | ||
**1** | STATUS\_IDLE | OK | Idle | REMAINING | N/A | |
**2** | STATUS\_FILESET\_DOWNLOADING | ACTIVITY | Downloading: #% | REMAINING | ||
**3** | STATUS\_FILESET\_DOWNLOADED | OK | Downloaded | REMAINING | ||
**4** | STATUS\_FILESET\_ACTIVATED | OK | Installed as dependency Installed via Kiosk Active | COMPLETED | macOS Windows | |
**5** | STATUS\_FILESET\_MADE\_PASSIVE | OK | Passive | COMPLETED | 1. Create and associate a fileset to a client 2. Edit the association to make the files passive in the near future 3. Update Model 4. Check Client Info > Filesets Status at time when fileset is to be made passive | |
**6** | STATUS\_FILESET\_DELETED | OK | Deleted | COMPLETED | iOS | Easiest to see with iOS 1. Create an iOS App Store fileset 2. Associate the fileset to an iOS client 3. Update Model 4. After app installs and Client Info > Filesets Status shows 'Installed Successfully', delete the app from the device 5. Close and reopen Client Info (triggers MDM commands) 6. Open Client Info > Filesets Status for the client |
**7** | STATUS\_FILESET\_INSTALLED\_SUCCESSFULLY | OK | Installed successfully | COMPLETED | iOS | |
**8** | STATUS\_FILESET\_INSTALL\_FAILURE | WARNING | Install failed | ERROR | ||
**9** | STATUS\_FILESET\_DISK\_FULL | WARNING | Disk full | ERROR | 1. Create a massive dummy file on the client to eat up disk space 1. Windows: fsutil file createnew FILENAME BYTES 2. macOS: mkfile -n SIZE\[b|k|m|g\] FILENAME 2. Create another massive dummy file on the Admin to use in fileset 3. Create an Empty fileset and add the dummy file 4. Associate the fileset to a client 5. Update Model & perform Verify for client | |
**10** | STATUS\_FILESET\_INSTALLER\_RUNNING | ACTIVITY | Installer running now | REMAINING | ||
**11** | STATUS\_FILESET\_ERROR | WARNING | iOS: Please log in to your iTunes Store account Desktop: Error: 4 | ERROR | Now only see "Error: 4" if setting last\_status for fileset to 11 manually in admin.user\_status table Steps (iOS)... 1. Do not sign into iTunes on an iOS client 2. Create an App Store fileset 3. Associate the fileset to an iOS client 4. Update Model 5. On the client, tap 'Cancel' when prompted to sign into iTunes | |
**13** | CANT\_LOAD\_DATA\_FILE\_FROM\_SERVER\_ERROR | WARNING | Error while downloading from server | WARNING | Note: Only have seen 'Fileset Error' | |
**14** | STATUS\_FILESET\_ASSOCIATED | IGNORE | Associated | REMAINING | macOS Windows Android iOS | 1. Create any type of fileset 2. Associate the fileset to a client 3. Update Model 4. Open Client Info > Filesets Status for client before client gets new model |
**15** | BOOSTER\_SERVER\_DISK\_FULL\_STATUS | ERROR | Booster/Server disk full | ERROR | ||
**16** | STATUS\_FILESET\_INSTALLATION\_CANCELLED | WARNING | Installation cancelled by the user | COMPLETED | Android | Easiest to see with Android 1. Create an APK fileset 2. Associate the APK with an Android client 3. Update Model 4. On the Android device, tap \[Cancel\] when prompted to install the APK |
**17** | STATUS\_FILESET\_INSTALLER\_OUTDATED | WARNING | Fileset install failed, a more recent version is installed | ERROR | ||
**18** | STATUS\_FILESET\_UNINSTALLER\_RUNNING | ACTIVITY | Uninstaller running now | REMAINING | ||
**19** | STATUS\_FILESET\_UNINSTALL\_FAILURE | WARNING | Uninstall failed | WARNING | ||
**21** | ACTIVATING\_STATUS | ACTIVITY | Activating | REMAINING | ||
**22** | STATUS\_FILESET\_SCRIPT\_FAILED | WARNING | Script execution failure | ERROR | ||
**23** | STATUS\_INVENTORY\_ONLY\_CLIENT | WARNING | Not installed: client is inventory only | COMPLETED | ||
**25** | STATUS\_IN\_KIOSK\_UNINSTALLED | OK | Excluded from Kiosk (Dependency) Available in Kiosk | COMPLETED | macOS Windows | |
**-52** | PLEASE\_REBOOT\_RESULT | ACTIVITY | Waiting for user to log out | REMAINING | macOS Windows | |
**-51** | FAILED\_TO\_LOGOUT\_RESULT | ACTIVITY | Waiting for user to log out | REMAINING | macOS Windows | |
**-50** | WAITING\_FOR\_USER\_TO\_LOGIN\_RESULT | ACTIVITY | Waiting for user to log in | REMAINING | macOS Windows | |
**99** | FILESET\_PRIORITY\_ERROR | ACTIVITY | Waiting for higher priority filesets | REMAINING | 1. Create 2 filesets A and B 2. In Fileset Properties set fileset A's Installation Priority to Highest, and fileset B's to Lowest 3. Select fileset A an click the \[Scripts\] button in Filesets view 4. Create a script under 'Activation Scripts' that will cause a wait 1. e.g. for batch, add a PAUSE 5. Associate filesets A and B with a client 6. Update Model & perform a Verify for client | |
**98** | FILESET\_REQUIREMENTS\_ARCH\_ERROR | INFO | Requirements not met: architecture | COMPLETED | 1. Create a fileset that allows setting Requirements 2. In Fileset Properties > Requirements, check the box for 'Architecture' and (un)select options that would make fileset fail to install on client 3. Associate fileset to a client 4. Update Model & perform Verify for client | |
**97** | FILESET\_REQUIREMENTS\_VERSION\_ERROR | INFO | Requirements not met: system version | COMPLETED | 1. Create a fileset that allows setting Requirements 2. In Fileset Properties > Requirements, check the box for 'System Version' or 'Platform' and (un)select options that would make fileset fail to install on client 3. Associate fileset to a client 4. Update Model & perform Verify for client | |
**96** | FILESET\_REQUIREMENTS\_MEMORY\_ERROR | INFO | Requirements not met: insufficient memory | COMPLETED | 1. Create a fileset that allows setting Requirements 2. In Fileset Properties > Requirements, check the box for 'Min. Memory' and set the minimum memory (in MB) to greater than the total memory for a client 3. Associate fileset to a client 4. Update Model & perform Verify for client | |
**95** | FILESET\_REQUIREMENTS\_SCRIPT\_ERROR | INFO | Requirements not met: script | COMPLETED | 1. Create a fileset that allows adding Scripts 2. Click the Scripts button and Create a script under 'Requirement Scripts' 3. Have the script exit with a failure (exit 1) 4. Associate fileset to a client 5. Update Model & perform Verify for client | |
**666** | FILESET\_REMOTE\_WIPE\_EXECUTED | ACTIVITY | Remote wipe executed | REMAINING | ||
**-5** | WAITING\_FOR\_BOOSTER\_RESULT | ACTIVITY | Waiting for booster | REMAINING | ||
**-32** | NETWORK\_GENERIC\_ERROR | WARNING | Network error | ERROR | ||
**-149** | FAILED\_CRC\_CHECK\_ERROR | ERROR | Failed CRC validation | ERROR | ||
**101** | MAC\_APP\_STORE\_FATAL\_ERROR | WARNING | Mac App Store license fatal error | ERROR | ||
**102** | MAC\_APP\_STORE\_LICENSE\_ASSOCIATED | IGNORE | Mac App Store license associated | REMAINING | ||
**103** | MAC\_APP\_STORE\_NOT\_ENOUGH\_LICENSES | WARNING | Not enough Mac App Store VPP license | WARNING | ||
**104** | MAC\_APP\_STORE\_VPP\_USER\_NOT\_ASSOCIATED | WARNING | User needs to accept the invite to the organization with a valid iTunes account | REMAINING | ||
**105** | MAC\_APP\_STORE\_NO\_LICENSE\_NEEDED | WARNING | No VPP license associated to this fileset | REMAINING | ||
**106** | MAC\_APP\_STORE\_NO\_VPP\_USER | WARNING | No VPP user for this application's VPP token associated to the device | WARNING | ||
**107** | MAC\_APP\_STORE\_VPP\_USER\_RETIRED | WARNING | VPP user is retired | WARNING | ||
**108** | MAC\_APP\_STORE\_NO\_VPP\_TOKEN | WARNING | No VPP token associated to this fileset | WARNING | ||
**109** | MAC\_APP\_STORE\_INSTALLED | OK | Installed via Mac App Store | COMPLETED | ||
**110** | MAC\_APP\_STORE\_INSTALLING | ACTIVITY | Installing via Mac App Store (can take some time) | REMAINING | ||
**111** | MAC\_APP\_STORE\_ASSET\_NO\_DEVICE\_ASSIGNABLE | WARNING | VPP license for asset can not be assigned to a device | WARNING | ||
**112** | MAC\_APP\_STORE\_NOT\_VPP\_APP | WARNING | Not a VPP application Fileset Error | WARNING | Note: Only have seen 'Fileset Error' | |
**130** | DEPENDENCIES\_DOWNLOAD\_FAILED | WARNING | Download of dependency fileset failure | ERROR | 1. Create 2 Empty filesets, A & B 2. Make B a dependency of A 3. Set the Requirements on B such that it will fail 4. Associate A with a client 5. Update Model & perform Verify for client | |
**131** | DEPENDENCIES\_ACTIVATION\_FAILED | WARNING | Activation of dependency fileset failure | ERROR | ||
**132** | DEPENDENCIES\_PASSIVE\_FAILED | WARNING | Failed to make dependencies passive | WARNING | Note: Only have seen 'Fileset Error' | |
**133** | DEPENDENCIES\_DELETE\_FAILED | WARNING | Failed to delete dependencies | WARNING | Note: Only have seen 'Fileset Error' | |
**134** | DEPENDENCIES\_UPDATE\_FAILED | WARNING | Update of dependency fileset failure | ERROR | ||
**135** | DEPENDENCIES\_LOGOUT\_FAILED | ACTIVITY | Waiting for user to log out to install dependency | REMAINING | ||
**136** | DEPENDENCIES\_FAILED | WARNING | Dependency fileset failed | WARNING | ||
**210** | FILESET\_REQUIREMENTS\_OK\_SKIP\_INSTALL | OK | Skipped | COMPLETED | ||
**220** | FILESET\_REQUIREMENTS\_ERROR\_STOP\_TRYING | INFO | Requirements not met: will not retry | COMPLETED | ||
**1024** | CHECK\_REQUIREMENTS\_OK | ACTIVITY | Requirements met | REMAINING | ||
**2048** | STATUS\_FILESET\_INSTALLED\_BY\_PROFILES\_COMMAND | OK | Installed | COMPLETED | ||
**2049** | STATUS\_FILESET\_INSTALLED\_BY\_MDM\_SERVER | OK | Handled via MDM | COMPLETED | ||
**2050** | STATUS\_FILESET\_FAILED\_TO\_INSTALL\_BY\_PROFILES\_COMMAND | ERROR | Profile Installation Failure | ERROR |