Skip to content

KeyError: 'd' - payload = payload['d']['GetContextWebInformation'] #244

@Rich107

Description

@Rich107

Hi All,

I was previously using version 2.1.3. This worked until the end of last month when it started to get an access_token KeyError, stack trace below:

Traceback (most recent call last):
  File "/usr/local/lib/python3.7/site-packages/celery/app/trace.py", line 385, in trace_task
    R = retval = fun(*args, **kwargs)
  File "/usr/local/lib/python3.7/site-packages/celery/app/trace.py", line 648, in __protected_call__
    return self.run(*args, **kwargs)
  File "/code/carbon_service/tasks.py", line 9, in update
�
)
  File "/code/carbon_service/services/Update.py", line 117, in update
    upload_file(context=ctx, doc_library='XXX', pdf_file=f, metadata=metadata)
  File "/code/carbon_service/services/Update.py", line 48, in upload_file
    file = upload_file_into_library(library, metadata.pop('Name'), file_content, metadata=metadata)
  File "/code/carbon_service/services/Update.py", line 35, in upload_file_into_library
    context.execute_query()
  File "/usr/local/lib/python3.7/site-packages/office365/runtime/client_runtime_context.py", line 38, in execute_query
    self.pending_request.execute_query()
  File "/usr/local/lib/python3.7/site-packages/office365/runtime/client_request.py", line 32, in execute_query
    return self.execute_pending_queries()
  File "/usr/local/lib/python3.7/site-packages/office365/runtime/client_request.py", line 38, in execute_pending_queries
    response = self.execute_request_direct(request)
  File "/usr/local/lib/python3.7/site-packages/office365/runtime/client_request.py", line 105, in execute_request_direct
    self.context.authenticate_request(request_options)
  File "/usr/local/lib/python3.7/site-packages/office365/runtime/client_runtime_context.py", line 16, in authenticate_request
    self.__auth_context.authenticate_request(request)
  File "/usr/local/lib/python3.7/site-packages/office365/runtime/auth/authentication_context.py", line 37, in authenticate_request
    request_options.set_header('Authorization', self.provider.get_authorization_header())
  File "/usr/local/lib/python3.7/site-packages/office365/runtime/auth/acs_token_provider.py", line 76, in get_authorization_header
    return 'Bearer {0}'.format(self.access_token["access_token"])
KeyError: 'access_token'

I've tried creating a newly registered app in SharePoint without any luck. (It stopped working exactly 12 months after I set it up making me think it was a permissions expiry problem.)

Next, I tried updating to the latest version (2.1.7.post1) on pypi which just gives me new errors but I think I am past the permissions problem?

Traceback (most recent call last):
  File "<console>", line 1, in <module>
  File "/code/carbon_service/services/Update.py", line 118, in update
    upload_file(context=ctx, doc_library='XXX', pdf_file=f, metadata=metadata)
  File "/code/carbon_service/services/Update.py", line 49, in upload_file
    file = upload_file_into_library(library, metadata.pop('Name'), file_content, metadata=metadata)
  File "/code/carbon_service/services/Update.py", line 36, in upload_file_into_library
    context.execute_query()
  File "/usr/local/lib/python3.7/site-packages/office365/sharepoint/client_context.py", line 43, in execute_query
    super(ClientContext, self).execute_query()
  File "/usr/local/lib/python3.7/site-packages/office365/runtime/client_runtime_context.py", line 37, in execute_query
    self.pending_request.execute_query()
  File "/usr/local/lib/python3.7/site-packages/office365/runtime/client_request.py", line 30, in execute_query
    for request in self.build_request():
  File "/usr/local/lib/python3.7/site-packages/office365/runtime/odata/odata_request.py", line 35, in build_request
    self._events['before'](request, qry)
  File "/usr/local/lib/python3.7/site-packages/office365/sharepoint/client_context.py", line 47, in _build_specific_query
    self.ensure_form_digest(request)
  File "/usr/local/lib/python3.7/site-packages/office365/sharepoint/client_context.py", line 26, in ensure_form_digest
    self.request_form_digest()
  File "/usr/local/lib/python3.7/site-packages/office365/sharepoint/client_context.py", line 37, in request_form_digest
    payload = payload['d']['GetContextWebInformation']
KeyError: 'd'

Any and all help would be appreciated! Kudos to @vgrem who helped me just over 12 months ago today!

Code thats failing:

def upload_file_into_library(target_library, name, content, metadata):
    target_library.context.json_format.metadata = 'verbose'
    context = target_library.context
    info = FileCreationInformation()
    info.content = content
    info.url = name
    info.overwrite = True
    target_file = target_library.files.add(info)
    context.execute_query()
    item = target_file.listitem_allfields
    for k, v in metadata.items():
        item.set_property(name=k, value=v)
    item.update()
    context.execute_query()
    return target_file

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions