When creating a new row, I keep getting 500 internal server error

[BACKEND][2024-02-28 15:02:06]     return func(*args, **kwds)
 [BACKEND][2024-02-28 15:02:06]   File "/baserow/backend/src/baserow/api/decorators.py", line 105, in func_wrapper
 [BACKEND][2024-02-28 15:02:06]     return func(*args, **kwargs)
 [BACKEND][2024-02-28 15:02:06]   File "/baserow/backend/src/baserow/api/decorators.py", line 170, in func_wrapper
 [BACKEND][2024-02-28 15:02:06]     return func(*args, **kwargs)
 [BACKEND][2024-02-28 15:02:06]   File "/baserow/backend/src/baserow/contrib/database/api/rows/views.py", line 552, in post
 [BACKEND][2024-02-28 15:02:06]     return Response(serializer.data)
 [BACKEND][2024-02-28 15:02:06]   File "/baserow/venv/lib/python3.9/site-packages/rest_framework/serializers.py", line 555, in data
 [BACKEND][2024-02-28 15:02:06]     ret = super().data
 [BACKEND][2024-02-28 15:02:06]   File "/baserow/venv/lib/python3.9/site-packages/rest_framework/serializers.py", line 253, in data
 [BACKEND][2024-02-28 15:02:06]     self._data = self.to_representation(self.instance)
 [BACKEND][2024-02-28 15:02:06]   File "/baserow/venv/lib/python3.9/site-packages/rest_framework/serializers.py", line 509, in to_representation
 [BACKEND][2024-02-28 15:02:06]     attribute = field.get_attribute(instance)
 [BACKEND][2024-02-28 15:02:06]   File "/baserow/venv/lib/python3.9/site-packages/rest_framework/fields.py", line 446, in get_attribute
 [BACKEND][2024-02-28 15:02:06]     return get_attribute(instance, self.source_attrs)
 [BACKEND][2024-02-28 15:02:06]   File "/baserow/venv/lib/python3.9/site-packages/rest_framework/fields.py", line 96, in get_attribute
 [BACKEND][2024-02-28 15:02:06]     instance = getattr(instance, attr)
 [BACKEND][2024-02-28 15:02:06]   File "/baserow/venv/lib/python3.9/site-packages/django/db/models/fields/related_descriptors.py", line 588, in __get__
 [BACKEND][2024-02-28 15:02:06]     return self.related_manager_cls(instance)
 [BACKEND][2024-02-28 15:02:06]   File "/baserow/venv/lib/python3.9/site-packages/django/db/models/fields/related_descriptors.py", line 962, in __init__
 [BACKEND][2024-02-28 15:02:06]     self.source_field = self.through._meta.get_field(self.source_field_name)
 [BACKEND][2024-02-28 15:02:06]   File "/baserow/venv/lib/python3.9/site-packages/django/db/models/options.py", line 671, in get_field
 [BACKEND][2024-02-28 15:02:06]     raise FieldDoesNotExist(
 [BACKEND][2024-02-28 15:02:06] django.core.exceptions.FieldDoesNotExist: Table533Model_field_5069 has no field named 'None'
 [BACKEND][2024-02-28 15:02:06] 406|2024-02-28 15:02:06.713|INFO|baserow.core.action.signals:log_action_receiver:28 - do: workspace=96 action_type=create_row user=2
 [BACKEND][2024-02-28 15:02:06] 49.13.137.191:0 - "POST /api/database/rows/table/533/?user_field_names=true HTTP/1.1" 500

Structure is exactly same, I don’t understand why I have to face 500 internal server error for only 192 records moving using baserow api.

I deleted all rows from Country table in baserow, and retried to import using baserow api.
Airtable has 192 records in Country table so now 191 rows were moved and 1 row with 500 error.
Please help me, this is urgent and super super ULTRA CRITICAL problem for me.
Thanks.

 [BACKEND][2024-02-28 15:52:06] 49.13.137.191:0 - "POST /api/database/rows/table/533/?user_field_names=true HTTP/1.1" 200
 [BACKEND][2024-02-28 15:52:06] 405|2024-02-28 15:52:06.077|INFO|baserow.core.action.signals:log_action_receiver:28 - do: workspace=96 action_type=create_row user=2
 [BACKEND][2024-02-28 15:52:06] 406|2024-02-28 15:52:06.079|INFO|baserow.core.action.signals:log_action_receiver:28 - do: workspace=96 action_type=create_row user=2
 [BACKEND][2024-02-28 15:52:06] 406|2024-02-28 15:52:06.083|INFO|baserow.core.action.signals:log_action_receiver:28 - do: workspace=96 action_type=create_row user=2
 [BACKEND][2024-02-28 15:52:06] ERROR 2024-02-28 15:52:06,090 django.request.log_response:241- Internal Server Error: /api/database/rows/table/533/
 [BACKEND][2024-02-28 15:52:06] Traceback (most recent call last):
 [BACKEND][2024-02-28 15:52:06]   File "/baserow/venv/lib/python3.9/site-packages/django/db/models/options.py", line 669, in get_field
 [BACKEND][2024-02-28 15:52:06]     return self.fields_map[field_name]
 [BACKEND][2024-02-28 15:52:06] KeyError: None
 [BACKEND][2024-02-28 15:52:06]
 [BACKEND][2024-02-28 15:52:06] During handling of the above exception, another exception occurred:
 [BACKEND][2024-02-28 15:52:06]
 [BACKEND][2024-02-28 15:52:06] Traceback (most recent call last):
 [BACKEND][2024-02-28 15:52:06]   File "/baserow/venv/lib/python3.9/site-packages/asgiref/sync.py", line 486, in thread_handler
 [BACKEND][2024-02-28 15:52:06]     raise exc_info[1]
 [BACKEND][2024-02-28 15:52:06]   File "/baserow/venv/lib/python3.9/site-packages/django/core/handlers/exception.py", line 43, in inner
 [BACKEND][2024-02-28 15:52:06]     response = await get_response(request)
 [BACKEND][2024-02-28 15:52:06]   File "/baserow/venv/lib/python3.9/site-packages/django/core/handlers/base.py", line 253, in _get_response_async
 [BACKEND][2024-02-28 15:52:06]     response = await wrapped_callback(
 [BACKEND][2024-02-28 15:52:06]   File "/baserow/venv/lib/python3.9/site-packages/asgiref/sync.py", line 448, in __call__
 [BACKEND][2024-02-28 15:52:06]     ret = await asyncio.wait_for(future, timeout=None)
 [BACKEND][2024-02-28 15:52:06]   File "/usr/lib/python3.9/asyncio/tasks.py", line 442, in wait_for
 [BACKEND][2024-02-28 15:52:06]     return await fut

I used fields name like Name, Code etc… in baserow api.

Well, do I have to use different name such as field_4889 etc??

[BACKEND][2024-02-28 15:59:03] During handling of the above exception, another exception occurred:
 [BACKEND][2024-02-28 15:59:03]
 [BACKEND][2024-02-28 15:59:03] Traceback (most recent call last):
 [BACKEND][2024-02-28 15:59:03]   File "/baserow/venv/lib/python3.9/site-packages/asgiref/sync.py", line 486, in thread_handler
 [BACKEND][2024-02-28 15:59:03]     raise exc_info[1]
 [BACKEND][2024-02-28 15:59:03]   File "/baserow/venv/lib/python3.9/site-packages/django/core/handlers/exception.py", line 43, in inner
 [BACKEND][2024-02-28 15:59:03]     response = await get_response(request)
 [BACKEND][2024-02-28 15:59:03]   File "/baserow/venv/lib/python3.9/site-packages/django/core/handlers/base.py", line 253, in _get_response_async
 [BACKEND][2024-02-28 15:59:03]     response = await wrapped_callback(
 [BACKEND][2024-02-28 15:59:03]   File "/baserow/venv/lib/python3.9/site-packages/asgiref/sync.py", line 448, in __call__
 [BACKEND][2024-02-28 15:59:03]     ret = await asyncio.wait_for(future, timeout=None)
 [BACKEND][2024-02-28 15:59:03]   File "/usr/lib/python3.9/asyncio/tasks.py", line 442, in wait_for
 [BACKEND][2024-02-28 15:59:03]     return await fut
 [BACKEND][2024-02-28 15:59:03]   File "/baserow/venv/lib/python3.9/site-packages/asgiref/current_thread_executor.py", line 22, in run
 [BACKEND][2024-02-28 15:59:03]     result = self.fn(*self.args, **self.kwargs)
 [BACKEND][2024-02-28 15:59:03]   File "/baserow/venv/lib/python3.9/site-packages/asgiref/sync.py", line 490, in thread_handler
 [BACKEND][2024-02-28 15:59:03]     return func(*args, **kwargs)
 [BACKEND][2024-02-28 15:59:03]   File "/baserow/venv/lib/python3.9/site-packages/django/views/decorators/csrf.py", line 55, in wrapped_view
 [BACKEND][2024-02-28 15:59:03]     return view_func(*args, **kwargs)
 [BACKEND][2024-02-28 15:59:03]   File "/baserow/venv/lib/python3.9/site-packages/django/views/generic/base.py", line 103, in view
 [BACKEND][2024-02-28 15:59:03]     return self.dispatch(request, *args, **kwargs)
 [BACKEND][2024-02-28 15:59:03]   File "/baserow/venv/lib/python3.9/site-packages/rest_framework/views.py", line 509, in dispatch
 [BACKEND][2024-02-28 15:59:03]     response = self.handle_exception(exc)
 [BACKEND][2024-02-28 15:59:03]   File "/baserow/venv/lib/python3.9/site-packages/rest_framework/views.py", line 469, in handle_exception
 [BACKEND][2024-02-28 15:59:03]     self.raise_uncaught_exception(exc)
 [BACKEND][2024-02-28 15:59:03]   File "/baserow/venv/lib/python3.9/site-packages/rest_framework/views.py", line 480, in raise_uncaught_exception
 [BACKEND][2024-02-28 15:59:03]     raise exc

Hello @bram
Please see this post.
This guy is saying
" When field “w_4” is in a form, and referenced by “w4”, and that form is submitted, I get the error.
If I remove the reference to “w_4” from “w4”, I can submit the form without error."

Do I have to remove underline from link or lookup field name?
This is non-sense.

Hello @bram
I realized, Linked or Lookup field is critical problem.
This is Country table, it has Clients Link field. Clients table is available with no rows.
I tested 3 times with Clients Link field and without it.
Before removing Clients field, I keep getting 500 internal error randomly. Sometimes 189 records imported, 170 or etc…
But after removing Clients field, all records were imported successfully from airtable without any errors.
Please help me how to resolve this problem. I MUST use Link and Lookup fields.
Thanks.

Hello @bram

I am crazy with Link and Lookup fields, so I decied to share all my credentials with you in private.
My Laravel script to move data from airtable to baserow, and server credential that baserow app installed.

Please let me know your thoughts,
Thanks.

Hi @Long, thanks for sharing the output logs, this is useful for us.

I just wanted to let you know that we’re looking into the problem. Because you’re getting random field errors, I suspect this might be related to a bug we identified recently. It’s fixed, but not yet released. The code changes can be found here: Don't clear Django global apps cache (!2105) · Merge requests · Baserow / baserow · GitLab. If that’s the case, then you would need to wait for the release of next week to fix it.

Does your queue make multiple API requests concurrently? It would also be great if you can share how many API requests you were making. A number of estimated API requests per second would be useful to know.

Would you be able to try to use our hosted version at https://baserow.io, and see if the same problem occurs there as well?


CPU: 8 core
RAM: 15.2G

That should definitely be enough resources.

I am feeling this is public thread, so I am afraid to share my server credential here, right?

No need to share your actual credentials. This is already enough information for me on that front.

This guy is saying
" When field “w_4” is in a form, and referenced by “w4”, and that form is submitted, I get the error.
If I remove the reference to “w_4” from “w4”, I can submit the form without error."

Good catch on finding the error above. However, this specific problem was already fixed a while ago.

Does your queue make multiple API requests concurrently? It would also be great if you can share how many API requests you were making. A number of estimated API requests per second would be useful to know.

I tested with 10861 records from airtable, so sometimes, 12, 20, or 1860 requests at the same time after running the import script.
Is this problem?

If baserow app can’t handle 1000+ requests importing concurrently, how can I import tens of records from airtable?
But what I know is , that the most critical problem is that Link and Lookup field has a critical problem.
Even if I try to create a new row one by one without using job queue, I got 500 internal server error randomly.
It doesn’t make a lot of requests concurrently. It makes 1 - 5 requests per second or less.
So, I can say the most critical problem is that Link and Lookup field has a critical problem.

Please help me, thanks. :handshake::handshake:

Hi @Long, concurrent requests are being made at the same time, so not sequential. If you’re making 1 to 5 requests per second, then that should definitely not be a problem. One final question. If you get a 500-internal error, and you retry the same request, do you keep getting a 500 error for that request, or does it eventually work?

As I mentioned above, even if I don’t make concurrent requests, I keep getting 500 internal server errors randomly.
When I make concurrent requests, it’s same 500 internal server errors randomly.

And did you check my message below that I sent above?
Please let me know your thoughts, thanks.

I realized, Linked or Lookup field is critical problem.
This is Country table, it has Clients Link field. Clients table is available with no rows.
I tested 3 times with Clients Link field and without it.
Before removing Clients field, I keep getting 500 internal error randomly. Sometimes 189 records imported, 170 or etc…
But after removing Clients field, all records were imported successfully from airtable without any errors.
Please help me how to resolve this problem. I MUST use Link and Lookup fields.
Thanks.

I have seen your comment. Based on the information that I have, I can almost draw the conclusion about what’s causing your problem. I would need to you to answer this question though: If you get a 500-internal error, and you retry the same request, do you keep getting a 500 error for that request, or does it eventually work?

Yes, sometimes / randomly
But I want to copy all data from airtable to baserow without any errors.
I am super ultra terrible afraid.
I decided to share my baserow server and my script server’s credentials with you.
I have no idea.
Please let me know your thoughts, thanks.

[BACKEND][2024-03-01 11:42:21] 49.13.137.191:0 - "GET /api/database/rows/table/527/?user_field_names=true&filter__ID__equal=1 HTTP/1.1" 200
 [BACKEND][2024-03-01 11:42:21] ERROR 2024-03-01 11:42:21,519 django.request.log_response:241- Internal Server Error: /api/database/rows/table/524/
 [BACKEND][2024-03-01 11:42:21] Traceback (most recent call last):
 [BACKEND][2024-03-01 11:42:21]   File "/baserow/venv/lib/python3.9/site-packages/asgiref/sync.py", line 486, in thread_handler
 [BACKEND][2024-03-01 11:42:21]     raise exc_info[1]
 [BACKEND][2024-03-01 11:42:21]   File "/baserow/venv/lib/python3.9/site-packages/django/core/handlers/exception.py", line 43, in inner
 [BACKEND][2024-03-01 11:42:21]     response = await get_response(request)
 [BACKEND][2024-03-01 11:42:21]   File "/baserow/venv/lib/python3.9/site-packages/django/core/handlers/base.py", line 253, in _get_response_async
 [BACKEND][2024-03-01 11:42:21]     response = await wrapped_callback(
 [BACKEND][2024-03-01 11:42:21]   File "/baserow/venv/lib/python3.9/site-packages/asgiref/sync.py", line 448, in __call__
 [BACKEND][2024-03-01 11:42:21]     ret = await asyncio.wait_for(future, timeout=None)
 [BACKEND][2024-03-01 11:42:21]   File "/usr/lib/python3.9/asyncio/tasks.py", line 442, in wait_for
 [BACKEND][2024-03-01 11:42:21]     return await fut
 [BACKEND][2024-03-01 11:44:32] 49.13.137.191:0 - "GET /api/database/rows/table/522/?user_field_names=true&filter__ID__equal=1593 HTTP/1.1" 200
 [BACKEND][2024-03-01 11:44:32] ERROR 2024-03-01 11:44:32,797 django.request.log_response:241- Internal Server Error: /api/database/rows/table/522/
 [BACKEND][2024-03-01 11:44:32] Traceback (most recent call last):
 [BACKEND][2024-03-01 11:44:32]   File "/baserow/venv/lib/python3.9/site-packages/asgiref/sync.py", line 486, in thread_handler
 [BACKEND][2024-03-01 11:44:32]     raise exc_info[1]
 [BACKEND][2024-03-01 11:44:32]   File "/baserow/venv/lib/python3.9/site-packages/django/core/handlers/exception.py", line 43, in inner
 [BACKEND][2024-03-01 11:44:32]     response = await get_response(request)
 [BACKEND][2024-03-01 11:44:32]   File "/baserow/venv/lib/python3.9/site-packages/django/core/handlers/base.py", line 253, in _get_response_async
 [BACKEND][2024-03-01 11:44:32]     response = await wrapped_callback(
 [BACKEND][2024-03-01 11:44:32]   File "/baserow/venv/lib/python3.9/site-packages/asgiref/sync.py", line 448, in __call__
 [BACKEND][2024-03-01 11:44:32]     ret = await asyncio.wait_for(future, timeout=None)
 [BACKEND][2024-03-01 11:44:32]   File "/usr/lib/python3.9/asyncio/tasks.py", line 442, in wait_for
 [BACKEND][2024-03-01 11:44:32]     return await fut

Hi @Long, I don’t think you’re doing anything wrong. Based on the information that I got from you, I suspect that it’s a bug in Baserow. Luckily, this bug has already been fixed. It will be released upcoming Wednesday. If you then update your Baserow instance, it shouldn’t happen anymore. :slight_smile:

Wow, wow, wow!!!
Super ultra great news!!! :tada::tada:

I wish “Tomorrow is Wednesday!” :grin::grin:

I will be waiting for a new version.
Thank you so much great @bram !

Hello @bram
How are you?

Will your team release new updates today?
Today is Wednesday as you promised.
I am so excited to see new updates.
Please let me know.

Best,
Long.

Hi @Long, yes, we will do the release today. Watch our website and blog in the next couple of hours because it will be posted there.

1 Like

I can’t see any updates yet on github and blog page related to my problems.
I have been waiting since the last week, but nothing changed for my problems.
I am very disappointed.

But just before, I updated our baserow app, so I will test it and let you know.
Thank you for all your efforts.