# 500 Error (Python script)

**URL:** <https://community.dreamfactory.com/t/500-error-python-script/3754>\
**Category:** Server-Side Scripting\
**Created:** [April 5, 2017, 11:50am UTC](https://community.dreamfactory.com/t/500-error-python-script/3754 "2017-04-05T11:50:11Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![Gavin\_Beard](https://yyz1.discourse-cdn.com/flex035/user_avatar/community.dreamfactory.com/gavin_beard/32/976_2.png) [@Gavin\_Beard](https://community.dreamfactory.com/u/Gavin_Beard)\
**Post date:** [April 5, 2017, 11:50am UTC](https://community.dreamfactory.com/t/500-error-python-script/3754/1 "2017-04-05T11:50:11Z")

</div>

Hello all,

I am having some issues with a script:

```
import bunch

# set up headers
options = {}
options['headers'] = {}
options['headers']['X-DreamFactory-Api-Key'] = platform.session.api_key
options['headers']['X-DreamFactory-Session-Token'] = platform.session.session_token
# get records using internal URL; call api.get on the user session that was just 
# created (this script will only work in post process!)

url = 'user/session'
result = platform.api.get(url)
data = result.read()

jsonData = bunchify(json.loads(data))

if 'error' in jsonData:
	raise ValueError(jsonData.error.message)
	
# save the data from api.get on user/session to local variables
UserId = str(jsonData.id)
Firstname = jsonData.first_name
Lastname = jsonData.last_name
DisplayName = jsonData.name
Email = jsonData.email

# create a simple json object that will be inserted into the custom user data table
post_data = '{"resource": [{"user_oid": ' + UserId + ',"first_name": "' + Firstname + '","last_name": "' + Lastname + '","display_name": "' + DisplayName + '","email_address": "' + Email + '","created_date": "' + '2017-01-01' + '"}]}'

# create a record using internal URL; call api.post with the post data that was built above, data will
# be posted to custom dim_user table

url = 'aws/_table/dim_users?fields=*&id_field=user_oid'
result = platform.api.post(url, post_data)

data = result.read()

jsonData = bunchify(json.loads(data))

if 'error' in jsonData:
	raise ValueError(jsonData.error.message)
elif 'resource' not in jsonData or len(jsonData.resource) != 1:
	raise ValueError('Unexpected response from url = ' + url)
	
print "fini"

```

It never reaches the end of the script, when I check the logs I see:

```
[2017-04-05 11:40:01] local.DEBUG: [REQUEST] {"Parameters":"{\"login\":\"true\",\"id_field\":\"user_oid\"}","API Key":"xxx","JWT":null}
[2017-04-05 11:40:01] local.DEBUG: API event handled: user.register.post.pre_process
[2017-04-05 11:40:01] local.DEBUG: API event handled: user.register.post.post_process
[2017-04-05 11:40:01] local.DEBUG: script token: 58e4d791529e7
[2017-04-05 11:40:01] local.DEBUG: script token cache: Array
(
    [app_id] => 4
    [user_id] => 36
)

[2017-04-05 11:40:01] local.INFO: [REQUEST] {"API Version":"2.0","Method":"GET","Service":"user","Resource":"session"}
[2017-04-05 11:40:01] local.DEBUG: [REQUEST] {"Parameters":"[]","API Key":null,"JWT":null}
[2017-04-05 11:40:01] local.DEBUG: API event handled: user.session.get.pre_process
[2017-04-05 11:40:01] local.DEBUG: API event handled: user.session.get.post_process
[2017-04-05 11:40:01] local.DEBUG: API event handled: user.session.get.queued
[2017-04-05 11:40:01] local.INFO: [RESPONSE] {"Status Code":200,"Content-Type":"application/json"}
[2017-04-05 11:40:01] local.DEBUG: script token: 58e4d791529e7
[2017-04-05 11:40:01] local.DEBUG: script token cache: Array
(
    [app_id] => 4
    [user_id] => 36
)

[2017-04-05 11:40:01] local.INFO: [REQUEST] {"API Version":"2.0","Method":"POST","Service":"aws","Resource":"_table/dim_users"}
[2017-04-05 11:40:01] local.DEBUG: [REQUEST] {"Parameters":"{\"fields\":\"*\",\"id_field\":\"user_oid\"}","API Key":null,"JWT":null}
[2017-04-05 11:40:01] local.DEBUG: API event handled: evvntlyaws._table.{table_name}.post.pre_process
[2017-04-05 11:40:01] local.DEBUG: API event handled: evvntlyaws._table.dim_users.post.pre_process
[2017-04-05 11:40:01] local.DEBUG: API event handled: evvntlyaws._table.{table_name}.post.post_process
[2017-04-05 11:40:01] local.DEBUG: API event handled: evvntlyaws._table.dim_users.post.post_process
[2017-04-05 11:40:01] local.DEBUG: API event handled: evvntlyaws._table.{table_name}.post.queued
[2017-04-05 11:40:01] local.DEBUG: API event handled: evvntlyaws._table.dim_users.post.queued
[2017-04-05 11:40:01] local.INFO: [RESPONSE] {"Status Code":500,"Content-Type":"application/json"}
[2017-04-05 11:40:01] local.INFO: Script 'user.register.post.post_process' output:

POST
{"resource": [{"user_id": 36,"first_name": "test","last_name": "user40","display_name": "test user40","email_address": "test40@junkmail.com","created_date": "2017-01-01"}]}

[2017-04-05 11:40:01] local.DEBUG: API event handled: user.register.post.queued
[2017-04-05 11:40:01] local.INFO: [RESPONSE] {"Status Code":200,"Content-Type":"application/json"}

```

I see that the there is an error 500 from the post to the aws table. If i take the POST output that I’m printing and use it in API docs then it inserts without an issue. I can’t figure out how to find what the 500 error is from a Python script, and can’t see anything that should cause an issue in the script?

Any help is appreciated

---

<div class="post-metadata">

**Author:** ![zerox12](https://avatars.discourse-cdn.com/v4/letter/z/e5b9ba/32.png) [@zerox12](https://community.dreamfactory.com/u/zerox12)\
**Post date:** [April 17, 2017, 2:45pm UTC](https://community.dreamfactory.com/t/500-error-python-script/3754/2 "2017-04-17T14:45:48Z")

</div>

Can you post your user rights configuration for the app which is creating a user?

---

<div class="post-metadata">

**Author:** ![Gavin\_Beard](https://yyz1.discourse-cdn.com/flex035/user_avatar/community.dreamfactory.com/gavin_beard/32/976_2.png) [@Gavin\_Beard](https://community.dreamfactory.com/u/Gavin_Beard)\
**Post date:** [April 19, 2017, 9:44pm UTC](https://community.dreamfactory.com/t/500-error-python-script/3754/3 "2017-04-19T21:44:07Z")

</div>

Thanks, but it is all sorted now. Strangely just adding a / to the start of the URL variable fixed it
