# Buggy code
def get_package(self, package_ref, short_paths):
    """obtain a package, either from disk or retrieve from remotes if necessary
    and not necessary to build
    """
    output = ScopedOutput(str(package_ref.conan), self._out)
    package_folder = self._client_cache.package(package_ref, short_paths=short_paths)

    # Check current package status
    if os.path.exists(package_folder):
        if self._check_updates:
            read_manifest = self._client_cache.load_package_manifest(package_ref)
            try:  # get_conan_digest can fail, not in server
                upstream_manifest = self.get_package_digest(package_ref)
                if upstream_manifest.file_sums != read_manifest.file_sums:
                    if upstream_manifest.time > read_manifest.time:
                        output.warn("Current package is older than remote upstream one")
                        if self._update:
                            output.warn(
                                "Removing it to retrieve or build an updated one"
                            )
                            rmdir(package_folder)
                    else:
                        output.warn("Current package is newer than remote upstream one")
            except ConanException:
                pass

    installed = False
    local_package = os.path.exists(package_folder)
    if local_package:
        output.info("Already installed!")
        installed = True
        log_package_got_from_local_cache(package_ref)
    else:
        installed = self._retrieve_remote_package(package_ref, package_folder, output)
    self.handle_package_manifest(package_ref, installed)
    return installed


# Traceback (KeyError)
D:\slave\ws\cab\extern\boost\1.63.0@0\ws>conan.exe upload "Boost/1.63.0@cab/extern" --all --confirm -r bop --retry 3
Uploading Boost/1.63.0@cab/extern

Compressing recipe...
Uploading conanmanifest.txt


Uploading conan_export.tgz

Uploaded conan recipe 'Boost/1.63.0@cab/extern' to 'bop': http://conan.bop
Uploading package 1/5: 4f0fd3886115d238859ac2a3d41664e4236efc61

Checking package integrity...
Package integrity OK!

Compressing package...
Requesting upload permissions...
Requesting upload permissions...Done!

Uploading conan_package.tgz

Uploading package 2/5: 5d34366328ff5fe8b9f93b912e5855ffb5fda596

Checking package integrity...
Traceback (most recent call last):
File "C:\Python34\Scripts\conan-script.py", line 9, in <module>
load_entry_point('conan==0.19.2', 'console_scripts', 'conan')()
File "C:\Python34\lib\site-packages\conans\conan.py", line 6, in run
main(sys.argv[1:])
File "C:\Python34\lib\site-packages\conans\client\command.py", line 1065, in main
error = command.run(args)
File "C:\Python34\lib\site-packages\conans\client\command.py", line 979, in run
raise exc
File "C:\Python34\lib\site-packages\conans\client\command.py", line 959, in run
method(args[0][1:])
File "C:\Python34\lib\site-packages\conans\client\command.py", line 826, in upload
retry_wait=args.retry_wait)
File "C:\Python34\lib\site-packages\conans\client\manager.py", line 540, in upload
retry=retry, retry_wait=retry_wait)
File "C:\Python34\lib\site-packages\conans\client\uploader.py", line 41, in upload_conan
self._upload_conan(conan_ref, force, all_packages, retry, retry_wait)
File "C:\Python34\lib\site-packages\conans\client\uploader.py", line 56, in _upload_conan
retry, retry_wait)
File "C:\Python34\lib\site-packages\conans\client\uploader.py", line 76, in upload_package
self._remote_proxy.upload_package(package_ref, retry, retry_wait)
File "C:\Python34\lib\site-packages\conans\client\proxy.py", line 295, in upload_package
result = self._remote_manager.upload_package(package_ref, remote, retry, retry_wait)
File "C:\Python34\lib\site-packages\conans\client\remote_manager.py", line 77, in upload_package
if read_manifest.file_sums[fname] != expected_manifest.file_sums[fname]:
KeyError: 'include/boost/asio/ip/unicast.hpp'

# Fixed code
def get_package(self, package_ref, short_paths):
    """obtain a package, either from disk or retrieve from remotes if necessary
    and not necessary to build
    """
    output = ScopedOutput(str(package_ref.conan), self._out)
    package_folder = self._client_cache.package(package_ref, short_paths=short_paths)

    # Check current package status
    if os.path.exists(package_folder):
        if self._check_updates:
            read_manifest = self._client_cache.load_package_manifest(package_ref)
            try:  # get_conan_digest can fail, not in server
                upstream_manifest = self.get_package_digest(package_ref)
                if upstream_manifest != read_manifest:
                    if upstream_manifest.time > read_manifest.time:
                        output.warn("Current package is older than remote upstream one")
                        if self._update:
                            output.warn(
                                "Removing it to retrieve or build an updated one"
                            )
                            rmdir(package_folder)
                    else:
                        output.warn("Current package is newer than remote upstream one")
            except ConanException:
                pass

    installed = False
    local_package = os.path.exists(package_folder)
    if local_package:
        output.info("Already installed!")
        installed = True
        log_package_got_from_local_cache(package_ref)
    else:
        installed = self._retrieve_remote_package(package_ref, package_folder, output)
    self.handle_package_manifest(package_ref, installed)
    return installed